我有这样的数据:

如果一行中有任何数值,我希望创建一个新列,它是其他列的之和,方法是忽略NA。但是,如果在一行中所有值(如第二行)都是na,则sum列将得到NA。
发布于 2020-06-15 06:16:26
您可以在NA中计数df值。如果一行中没有非NA值,则可以将输出赋值为NA或使用rowSums计算逐行和。
ifelse(rowSums(!is.na(df)) == 0, NA, rowSums(df, na.rm = TRUE))
#[1] 6000 NA 10000 8100 0数据
df <- structure(list(x = c(6000, NA, 10000, 100, 0), y = c(NA, NA,
NA, 7000, 0), z = c(NA, NA, NA, 1000, NA)), class = "data.frame",
row.names = c(NA, -5L))https://stackoverflow.com/questions/62382101
复制相似问题