是否有 R 代码或函数可以帮助我处理具有多个条件的 if 语句

Is there an R code or function that can help me with if statement with multiple condition

我正在清理我的数据集,它是一个包含两列的数据框,是在我加入多个数据框后获得的。我试图找到一种代码或一种逻辑方式来告诉 R 使用以下规则创建第三列:

  1. 如果两列都包含非NA值,则第三列包含它们的平均值。
  2. 如果一列包含 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)