Я хочу посчитать количество столбцов для каждой строки по условию на символ и пропущенное.
Например, у меня есть этот набор данных, test
.
Я хочу создать num
столбцов, считая количество столбцов «not» в пропущенном или пустом значении.
a<-c("aa","bb","cc","dd","",NA)
b<-c("",NA,"aa","","","dd")
c<-c("aa","",NA,NA,"cc","dd")
d<-c("aa","bb","",NA,"cc","dd")
test<-data.frame(cbind(a,b,c,d))
a b c d
1 aa aa aa
2 bb <NA> bb
3 cc aa <NA>
4 dd <NA> <NA>
5 cc cc
6 <NA> dd dd dd
Я хочу подсчитать количество столбцов, содержащих NA
и пустое значение, например
a b c d num
1 aa aa aa 3
2 bb <NA> bb 2
3 cc aa <NA> 2
4 dd <NA> <NA> 1
5 cc cc 2
6 <NA> dd dd dd 3
Я попробовал какой-то подход в других постах, например rowSums
Подсчет количества столбцов по условию (>) для каждой строки
> test$num<-rowSums(test!=c("",NA),na.rm=T)
> test
a b c d num
1 aa aa aa 3
2 bb <NA> bb 0
3 cc aa <NA> 2
4 dd <NA> <NA> 0
5 cc cc 2
6 <NA> dd dd dd 0
Однако, он возвращает неправильные числа, и я не смог найти причины.
Не могли бы вы дать мне знать, как решить эту проблему?