gpt4 book ai didi

r - 如何根据 R 中定义的列中缺失值的数量返回行值的总和?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:40:42 25 4
gpt4 key购买 nike

我正在尝试在 R 中执行此算法:

数据名称:EPIC_26

对于第 1 到 6 列,如果只有 1 个缺失值,则将剩余的 5 行值相加以形成另一列,如果有超过 1 个缺失值,则返回 missing/na 作为该列的结果。

我假设我必须执行以下标准才能得到我的结果,计算第 1 列到第 6 列每行缺失值的数量,如果为 0,则对所有 6 个值求和;如果是 1,则忽略该缺失值并将所有其他 5 求和;否则,如果它大于 1,则返回 missing。

我试过 is.na() 函数,但我不知道如何为我的数据选择定义的列。请帮我解决这个问题。非常感谢!

最佳答案

我首先创建一个新变量来计算 NA 的数量,然后使用一个简单的 ifelse() 条件:

df <- data.frame(v1 = c(NA, 1:5),
v2 = c(NA, NA, 2:5),
v3 = c(NA, NA, NA, 3:5),
v4 = c(NA, NA, NA, NA, 4:5),
v5 = c(NA, NA, NA, NA, NA, 5),
v6 = rep(NA, 6)
)

> df
v1 v2 v3 v4 v5 v6
1 NA NA NA NA NA NA
2 1 NA NA NA NA NA
3 2 2 NA NA NA NA
4 3 3 3 NA NA NA
5 4 4 4 4 NA NA
6 5 5 5 5 5 NA

df$new <- rowSums(is.na(df[1:6]))

df$new2 <- ifelse(df$new < 2, rowSums(df[1:6], na.rm = TRUE), NA)

> df
v1 v2 v3 v4 v5 v6 new new2
1 NA NA NA NA NA NA 6 NA
2 1 NA NA NA NA NA 5 NA
3 2 2 NA NA NA NA 4 NA
4 3 3 3 NA NA NA 3 NA
5 4 4 4 4 NA NA 2 NA
6 5 5 5 5 5 NA 1 25

关于r - 如何根据 R 中定义的列中缺失值的数量返回行值的总和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51362699/

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