2014-09-01 2 views
1

Я хотел бы получить число записей> 0 для каждой строки данных, например, чтобы получить новый столбец с этим числом строк.Число строк в кадре данных в соответствии с условием

Я выполнил цикл, с помощью которого я могу получить количество строк, но они печатаются как серия отдельных векторов. Как получить эти значения в одном столбце, который затем может быть добавлен в качестве столбца в моем df?

У меня есть df с 696 строками и 214 столбцами.

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

ответ

1

Нет необходимости в for цикле, просто сделать

testset$casecount <- rowSums(testset[, 13:214] > 0) 
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 
Смежные вопросы