gpt4 book ai didi

r - 按字符和缺失条件计算每行的列数

转载 作者:行者123 更新时间:2023-12-05 08:20:11 25 4
gpt4 key购买 nike

我想根据字符和缺失条件计算每行的列数。

例如,我有这个数据集,test

我想创建 num 列,计算“不”在缺失值或空值中的列数。

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

Count number of columns by a condition (>) for each row

> 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

但是,它返回错误的数字,我找不到原因。

你能告诉我如何解决这个问题吗?

最佳答案

您可以使用nchar + rowSums

test$num <- rowSums(nchar(as.matrix(test))>1,na.rm = TRUE)

%in% + rowSums

test$num <- rowSums(`dim<-`(!as.matrix(test) %in% c("",NA),dim(test)))

这样

> test
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

关于r - 按字符和缺失条件计算每行的列数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60109482/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com