是否有 R 代码或函数可以帮助我处理具有多个条件的 if 语句
Is there an R code or function that can help me with if statement with multiple condition
我正在清理我的数据集,它是一个包含两列的数据框,是在我加入多个数据框后获得的。我试图找到一种代码或一种逻辑方式来告诉 R 使用以下规则创建第三列:
- 如果两列都包含非
NA
值,则第三列包含它们的平均值。
- 如果一列包含
NA
,则第三列是没有缺失值的列的值。
例如:
df1 <-
data.frame(Var1 = c(34, 23, 23, NA, 32),
Var2 = c(NA, 34, NA, 35, 55))
df1
# Var1 Var2
# 1 34 NA
# 2 23 34
# 3 23 NA
# 4 NA 35
# 5 32 55
我想要的结果是:
# Var1 Var2 Var3
# 1 34 NA 34.0
# 2 23 34 28.5
# 3 23 NA 23.0
# 4 NA 35 35.0
# 5 32 55 43.5
这里需要rowMeans
(假设no值为NA
)
df1$Var3 <- rowMeans(df1, na.rm = TRUE)
如果值大于 100 或小于 1,将其更改为 NA
(不清楚该条件),然后执行 rowMeans
rowMeans(replace(df1, df1 < 1| df1 > 100, NA), na.rm = TRUE)
我正在清理我的数据集,它是一个包含两列的数据框,是在我加入多个数据框后获得的。我试图找到一种代码或一种逻辑方式来告诉 R 使用以下规则创建第三列:
- 如果两列都包含非
NA
值,则第三列包含它们的平均值。 - 如果一列包含
NA
,则第三列是没有缺失值的列的值。
例如:
df1 <-
data.frame(Var1 = c(34, 23, 23, NA, 32),
Var2 = c(NA, 34, NA, 35, 55))
df1
# Var1 Var2
# 1 34 NA
# 2 23 34
# 3 23 NA
# 4 NA 35
# 5 32 55
我想要的结果是:
# Var1 Var2 Var3
# 1 34 NA 34.0
# 2 23 34 28.5
# 3 23 NA 23.0
# 4 NA 35 35.0
# 5 32 55 43.5
这里需要rowMeans
(假设no值为NA
)
df1$Var3 <- rowMeans(df1, na.rm = TRUE)
如果值大于 100 或小于 1,将其更改为 NA
(不清楚该条件),然后执行 rowMeans
rowMeans(replace(df1, df1 < 1| df1 > 100, NA), na.rm = TRUE)