【发布时间】:2021-08-08 20:05:26
【问题描述】:
我已经阅读了关于动态命名变量的各种主题,但我找不到答案。
我有两个数据框。
df <- data.frame(qno=c(1,2,3,4))
ref <- data.frame(Q1 = c(1:20),Q2 = c(21:40),Q3=c(41:60),Q4 = c(61:80))
现在我想在 df 数据框中创建另一列“平均值”,它为我提供了 ref 中每一列的平均值。 预期输出:
df <- data.frame(qno=c(1,2,3,4), average = c(10.5,30.5,50.5,70.5))
这是我尝试过的:
df <- df %>%
mutate(average := mean(!!as.name(paste0("ref$Q",qno)))
我也尝试过带有 for 循环的版本,但也没有用。
for (i in 1:length(df$qno)){
df$average[i] <- mean(as.name(paste0("ref$Q",df$qno[i])))
}
df <- df %>%
mutate(average = mean(as.name(paste0("ref$Q",qno))))```.
【问题讨论】: