dplyr的删除功能?计算R中数据框中几列的平均值

dplyr的删除功能?计算R中数据框中几列的平均值,r,select,dplyr,mean,R,Select,Dplyr,Mean,我想计算数据框中几列的平均值。我想使用dplyr包中的“:”来选择它们。变量名是:Mcheck5_1_1,Mcheck5_2_1,…,Mcheck5_8_1,总共有8个。我知道我可以通过 select(df, Mcheck5_1_1:Mcheck5_8_1) 在Roger Pang以4分钟33秒讲授的在线课程中 然而,R抱怨说: Error in select(df, Mcheck5_1_1:Mcheck5_8_1) : unused argument (Mcheck5_1_1:Mcheck

我想计算数据框中几列的平均值。我想使用dplyr包中的“:”来选择它们。变量名是:Mcheck5_1_1,Mcheck5_2_1,…,Mcheck5_8_1,总共有8个。我知道我可以通过

select(df, Mcheck5_1_1:Mcheck5_8_1)
在Roger Pang以4分钟33秒讲授的在线课程中

然而,R抱怨说:

Error in select(df, Mcheck5_1_1:Mcheck5_8_1) : 
unused argument (Mcheck5_1_1:Mcheck5_8_1)
我也找不到其他人在谷歌上使用这个“:”功能。我怀疑这个功能已经不存在了

现在,我使用以下代码来解决这个问题:

idx = grep("Mcheck5_1_1", names(df))
df$avg = rowMeans(df[, idx:idx+7], na.rm = TRUE)
我不太愿意用数字索引这些列,例如df[138],因为我担心它的正数可能会有所不同

然而,我认为这个解决方案不够优雅。你能告诉我还有别的方法吗?现在,仅仅因为我在代码中犯了一些错误,还可以使用冒号:方法来索引我的变量吗?谢谢大家

在4:33时,使用contains可能会有所帮助,因为它用于在列中执行名称搜索,因此在您的情况下,它将是:selectdf,containsMcheck5_

尝试dplyr::selectdf,Mcheck5_1_1:Mcheck5_8_1。这可能是一个包冲突。有关相关问题,请参阅

要计算每列的平均值:

library(magrittr)
library(purrr)
df %>% 
 dplyr::select(Mcheck5_1_1:Mcheck5_8_1) %>% 
 map(mean)

你的回答也帮了大忙。谢谢顺便说一句,由于dplyr现在从包magrittr导入了%>%,您可能需要使用它。有关更多信息,请参阅