【发布时间】:2018-03-20 16:39:00
【问题描述】:
我想计算数据框中几列的平均值。我想使用 dplyr 包中的“:”来选择它们。变量名是:Mcheck5_1_1, Mcheck5_2_1, ..., Mcheck5_8_1(所以一共有8个)。我了解到我可以通过
来选择它们select(df, Mcheck5_1_1:Mcheck5_8_1)
在 Roger Pang (https://www.youtube.com/watch?v=aywFompr1F4&feature=youtu.be) 教授的在线课程中,时间为 4 分 33 秒。
但是,R 抱怨:
Error in select(df, Mcheck5_1_1:Mcheck5_8_1) :
unused argument (Mcheck5_1_1:Mcheck5_8_1)
我也找不到其他人在 Google 上使用此“:”功能。我怀疑这个功能已经不存在了?
现在,我使用以下代码来解决问题:
idx = grep("Mcheck5_1_1", names(df))
df$avg = rowMeans(df[, idx:idx+7], na.rm = TRUE)
(我不愿使用数字(例如,df[138])对这些列进行索引,因为担心其正数可能会有所不同。)
但是,我认为这个解决方案不够优雅。你会建议我有没有其他方法可以做到这一点?现在是否仍然可以使用冒号(:) 方法来索引我的变量,只是我在代码中犯了一些错误?谢谢大家。
https://www.youtube.com/watch?v=aywFompr1F4&feature=youtu.be
(在 4:33)
【问题讨论】: