我想计算观察出现的次数,其中一列大于另一列。
例如," A"," B"和" C"仅当列B大于colun C时才显示计数。
set.seed(20170524)
A <- rep(c("A","B","C"),5)
B <- round(runif(15,0,20),0)
C <- round(runif(15,1,5),0) + B
D <- as.data.frame(cbind(A,B,C))
D <- D[order(B),]
谢谢!
答案 0 :(得分:0)
#firstly, those numbers got converted to factors, this is problematic.
D$B<-as.numeric(D$B)
D$C<-as.numeric(D$C)
#Then, get the counts for the A:
countA = sum(D$A=='A' & D$B < D$C)
同样适用于'B'和'C'
如果除了“A,B,C”类别之外还有很多,你可能想要为by =选项做一个data.table,但有人可能会认为这样做太过分了。
答案 1 :(得分:0)
您可以使用:table(D$A[which(D$B>D$C)])
请注意,当您执行D <- as.data.frame(cbind(A,B,C))
时,您将获得factors
,以便之后将B
和C
转换为数字变量,或者直接创建{{1}没有通过data.frame
:
matrix