2017-10-09 15 views
0

私のデータフレーム内のいくつかの列の平均を計算したいと思います。私はそれらをdplyrパッケージの ':'を使って選択したかったのです。変数名は、Mcheck5_1_1、Mcheck5_2_1、...、Mcheck5_8_1です(合計8個です)。私は4min33secでロジャー・パン(https://www.youtube.com/watch?v=aywFompr1F4&feature=youtu.be)によって教示されたオンラインコースでdplyrの削除された機能? R

select(df, Mcheck5_1_1:Mcheck5_8_1) 

によってそれらを選択できることを学びました。

ただし、Rは訴えた:「:」Googleで機能私も他の人の本の使用を見つけることができませんでし

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時)

https://www.youtube.com/watch?v=aywFompr1F4&feature=youtu.be

答えて

1

てみてくださいdplyr::select(df, Mcheck5_1_1:Mcheck5_8_1)。パッケージ競合の可能性があります。関連する質問については、hereを参照してください。

これらの各列の平均値を計算するには:

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

btw、dplyrがパッケージmagrittrから%>%をインポートしたので、それを使用したいかもしれません。詳細はhttps://stackoverflow.com/questions/23621209/differences-between-dplyr-and-magrittrをご覧ください。 – JetLag

0

多分それは列の名前の検索を実行するために使用されますので、それは次のようになり、あなたの場合はので、助けることができるcontainsを使用して:select(df, contains("Mcheck5_"))

+0

をあなたの答えも多くのことを助けました。ありがとう! – JetLag

関連する問題