2017-03-01 2 views
-2

データを特定のフォーマットにしたいのですが、reshape()で処理する方法がわかりません。ワイドフォーマットにデータを整形する

私のデータは次のようになります。

df<-data.frame(Cues=c("A","B","C","A","B","C"), 
       Targets=rep(1:3,2), 
       Rater=rep(1:2, each=3), 
       Rating=c(1,3,5,2,4,6)) 

そして、私はそれが好きで取得したいと思います:

df2<-data.frame(Targets=rep(1:3,2), 
       Cues=c("A","B","C","A","B","C"), 
       Rater_1= c(1,2), 
       Rater_2=c(3,5), 
       Rater_3C=c(5,6)) 

私はreshape()、フォーラムで自分のベストを試してみましたが、実際にはさらに取得していません。あなたは私を助けてくれますか?

事前のおかげで、最高の、 ジョシュ

+0

あなたは 'reshape'で何を試しましたか? – emilliman5

+3

私はあなたの出力から理解できません – Sotos

+2

私も。あなたの出力をもう少し説明してください – Jimbou

答えて

0

注:あり、DFのdata.frameのセットアップには3Cの評価者がいないので、この答えはその問題を無視しています。これを念頭において

、長いから幅広い形式のデータに変換するための一つの方法は、​​モジュールからdcast機能である:

library(reshape2) 
df2 <- dcast(df, Targets + Cues ~ Rater, value.var = "Rating") 
names(df2)[names(df2) == "1"] <- "Rater_1" 
names(df2)[names(df2) == "2"] <- "Rater_2" 

df2 
    Targets Cues Rater_1 Rater_2 
1  1 A  1  2 
2  2 B  3  4 
3  3 C  5  6 

また、tidyrモジュールは、この種のために見ても価値があります変換。

+0

ありがとうございました!それが私が探していたものでした。私は、データを再形成/キャストして、新しい列「Rater_1」と「Rater_2」に自動的に名前を付けることができると考えました。そして悪い再現可能な例を残念に思って、データを単純化しようとしましたが、うまくやっていませんでした。次回は、私はより良く準備される;)助けてくれてありがとう、makeyourownmaker! – Josh

+0

心配はいりません。 Rは言語の中で最も単純なものではありません! – makeyourownmaker

関連する問題