我想使用 dplyr::mutate 计算某些列的平均值。
library(dplyr)
test <- data.frame(replicate(12, sample(1:12, 12, rep = T))) %>%
`colnames<-`(seq(1:12) %>% paste("BL", ., sep = ""))
Run Code Online (Sandbox Code Playgroud)
我想包括来计算平均值的列只有 BL1 到 BL9,所以我这样做
test_again <- test %>%
rowwise() %>%
mutate(ave = mean(c(seq(1:9) %>% paste("BL", ., sep = ""))))
Run Code Online (Sandbox Code Playgroud)
这行不通。我注意到如果我将列一一放置,它会起作用
test_againAndAgain <- test %>%
rowwise() %>%
mutate(ave = mean(c(BL1, BL2, BL3, BL4, BL5, BL6, BL7, BL8, BL9)))
Run Code Online (Sandbox Code Playgroud)
我怀疑这是因为我给出了字符串而不是“列”。
有人可以解释这种行为吗?什么是最好的解决方案?