gpt4 book ai didi

r - 计算 dplyr 中每一行的非 NA 数值的数量

转载 作者:行者123 更新时间:2023-12-03 20:30:44 26 4
gpt4 key购买 nike

我创建了一个数据框 df。

df <- data.frame (id = 1:10, 
var1 = 10:19,
var2 = sample(c(1:2,NA), 10, replace=T),
var3 = sample(c(3:5, NA), 10, replace=T))

我需要的是一个新列 var4,它计算每行(不包括 id 列)的非 NA 值的数量。例如,如果一行类似于 var1=19、var2=1、var3=NA,则 var4=2。我在 dplyr 中找不到这样做的好方法。
就像是:
df %in% mutate(var4= ... )

如果有人可以帮助我,我很感激。

最佳答案

使用 select + is.na + rowSums , select(., -id)使用 . 返回原始数据框 ( id )排除,然后用 rowSums(!is.na(...)) 计算非 NA 值的数量:

df %>% mutate(var4 = rowSums(!is.na(select(., -id))))

# id var1 var2 var3 var4
#1 1 10 NA 4 2
#2 2 11 1 NA 2
#3 3 12 2 5 3
#4 4 13 2 NA 2
#5 5 14 1 NA 2
#6 6 15 1 NA 2
#7 7 16 1 5 3
#8 8 17 NA 4 2
#9 9 18 NA 4 2
#10 10 19 NA NA 1

关于r - 计算 dplyr 中每一行的非 NA 数值的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48159291/

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