【发布时间】:2022-11-04 21:47:05
【问题描述】:
我已经试过这个来计算两列的平均值:
df_income <- df_income %>% mutate(log_income = rowMeans(df_income_[,7,8], na.rm=TRUE))
但是在某些情况下,第 7 列和第 8 列都有 NA。我该怎么做才能从第 7 列和第 8 列获得平均值的新列以及对于所有行,其中两个列都是 NA,新列中的结果也应该是 NA?
【问题讨论】:
我已经试过这个来计算两列的平均值:
df_income <- df_income %>% mutate(log_income = rowMeans(df_income_[,7,8], na.rm=TRUE))
但是在某些情况下,第 7 列和第 8 列都有 NA。我该怎么做才能从第 7 列和第 8 列获得平均值的新列以及对于所有行,其中两个列都是 NA,新列中的结果也应该是 NA?
【问题讨论】:
您可能需要summarize 而不是mutate,因为mean 会产生标量结果。 summarize 将返回一行数据框。 mutate,将返回一个数据帧,其中包含输入数据帧所有行的平均值的复制值。
这将返回一个数据框,其中一行包含第 7 列和第 8 列的平均值。
df_income %>%
summarize(across(c(7, 8), mean, na.rm = TRUE))
这将返回一个数据框,其中的列具有所有数字列的平均值。
df_income %>%
summarize(across(where(is.numeric), mean, na.rm = TRUE))
【讨论】: