我试图使用R中的库count函数来计算出现的特定数字组合的频率。
例如,我想知道数字1和2一起出现的频率。
N1 N2 N3
1 1 2 5
2 2 1 4
3 2 4 3
4 3 1 2
5 2 3 1
6 3 1 4因此,对于像上面这样的数据,我必须合并第1列和第2列,第1和第3列,第2和第3列,并将它们合并。然后对合并的数据进行“计数”。
combined1_2 = cbind(df$N1,df$N2)
combined1_3 = cbind(df$N1,df$N3)
combined2_3 = cbind(df$N2,df$N3)
combined_all = rbind(freq1_2,freq1_3,freq2_3)
combined_freq = count(combined_all)因此,当我检查频率表时,我得到了以下结果(只显示了部分结果)。
x1 x2 Freq
1 1 2 2
2 2 1 2 问题是,计数函数处理的数字"1和2“不同于"2和1”。所以我想知道在R中是否有任何函数可以解决这个问题,并产生像下面这样的正确结果。
x1 x2 Freq
1 1 2 4发布于 2015-11-09 10:26:50
你只需数数这些数字连在一起的时间:
sum(apply(df, 1, function(x){all(c(1, 2) %in% x)}))
#[1] 4发布于 2015-11-09 10:35:48
如果没有太多的数字要检查,也可以通过检查df是否等于每个数字来将其向量化。
sum((rowSums(df == 1) > 0) & (rowSums(df == 2) > 0))
## [1] 4https://stackoverflow.com/questions/33606969
复制相似问题