我如何获得R来计算一个数据集中属于另一个数据集中定义的类别的观测次数



我有一个大型数据集,其中有一个名为"from"的变量,此列包含许多不同的值,这些值都是机构名称。在一个单独的数据集中,我将这些机构完全定义为8种类型,在这个单独的数据集中,"类型"是列标题,我在算作该类型的名称下面列出。

我希望R计算第一个数据集中的观测次数,这些观测属于我在第二个数据集中定义的8个类别中的每一个。如果R能够为第二个数据集中识别的所有机构名称做到这一点,那就太好了。

此外(不是必要的(,R将列出第一个数据集中出现的、在第一个数据集中未被识别的任何机构名称,然后可以通过将其添加到第二个数据集中的列中,为用户提供定义新的未被识别机构名称的选项。

由于您没有可复制的示例,我只能提供一个非常一般的答案:

count.function <- function(df1, df2){
# Get distinct institution names to reduce computation
df1 %>% distinct(from) -> df1
# Create output dataframe
output.df <- data.frame("name" = df1$from, "type 1" = rep(0, nrow(df)),..., "type 8" = rep(0, nrow(df)) #Name the columns based off of the types
for(name in df1$from){
for(type in colnames(df2)){
if(name %in% df2[,type]){
output.df[name, type] <- output.df[name, type] + 1
}
}
return(output.df)
}

这将输出一个数据帧,该数据帧具有作为第1列的机构名称,以及每种类型的各个列中这些机构名称每次出现的计数。

所以你会这么做:

count.function(df1, df2) -> count.output

相关内容

最新更新