我想要做的是检查有序的x和y值对的数据框(在这个特定的集合中只有4个可能的值)并计算每个特定值发生的次数。
例如,我的数据框有第1列和第2列,如下所示:
data <- data.frame(col1=c(-.25, 0, -.25, -.77, 0, 0, 0, -2.5),
col2=c(0.9, 0, 0.9, 2.9, 0, 0, 0, 0.9))
我想计算每对可能出现的次数。我发现最接近的是table()
,它返回16个可能的值,这不是我需要的。 I.E,我试试
test=as.data.frame(table(data[,1:2]))
将两列作为测试提供给表。我得到的是一个列举9个“可能”组合的矩阵 - 我猜它的作用是简单地交叉引用每个列值并计算它出现的次数。
编辑:我意识到表格第三列中的非零条目是我想要的,但我最终需要这个来执行24个集合,所以它应该尽可能自动化。
答案 0 :(得分:3)
鉴于集合数量很多(24),table
可能会创建太多组合。您可以使用这种替代方法:
data$count <- 1
aggregate(count ~ ., data, FUN = sum)
# col1 col2 count
# 1 0.00 0.0 4
# 2 -2.50 0.9 1
# 3 -0.25 0.9 2
# 4 -0.77 2.9 1
答案 1 :(得分:0)
子集test
删除零值:
test=as.data.frame(table(data[,1:2]))
test <- test[which(!test$Freq==0),]
## col1 col2 Freq
##4 0 0 4
##5 -2.5 0.9 1
##7 -0.25 0.9 2
##10 -0.77 2.9 1