根据条件在数据帧中进行行计数

时间:2014-09-01 10:10:41

标签: r dataframe rows data-manipulation

我想获得条目数>数据帧的每一行为0,例如获取具有此行数的新列。

我执行了一个循环,我可以使用它获取行计数,但它们被打印为一系列单独的向量。如何在单个列中获取这些值,然后可以在我的df中添加为列?

我有一个包含696行和214列的df。

for (i in 2:696) {
   casecount <- length(which(testset[i,13:214] > 0))
   print(casecount)
 }      

2 个答案:

答案 0 :(得分:1)

不需要for循环,只需执行

testset$casecount <- rowSums(testset[, 13:214] > 0)

答案 1 :(得分:0)

尝试使用rowSums,如下所示:

n <- 10

set.seed(0)
dat <- data.frame(x=rnorm(n), y=rnorm(n), z=rnorm(n))
dat$count <- rowSums(dat > 0)
dat

              x          y           z count
1   1.262954285  0.7635935 -0.22426789     2
2  -0.326233361 -0.7990092  0.37739565     1
3   1.329799263 -1.1476570  0.13333636     2
4   1.272429321 -0.2894616  0.80418951     2
5   0.414641434 -0.2992151 -0.05710677     1
6  -1.539950042 -0.4115108  0.50360797     1
7  -0.928567035  0.2522234  1.08576936     2
8  -0.294720447 -0.8919211 -0.69095384     0
9  -0.005767173  0.4356833 -1.28459935     1
10  2.404653389 -1.2375384  0.04672617     2