このようなデータ フレームがあります (リンクを参照)。以下で生成される出力を取得し、さらに一歩進んで、トーン変数を n 変数と平均変数の両方に分散させたいと思います。このトピックはこれに関係しているようですが、うまくいきません: dcast と同様に、tidyr で複数の列にスプレッドを使用することは可能ですか?
最終的なテーブルの 1 つの列にソース変数を配置してから、tone-n 変数とtone-avg 変数を列に配置したいと思います。したがって、列ヘッダーを「ソース」-「For - n」-「Against - n」「For -Avg」-「Against - Avg」にしたいと思います。これは公開用であり、さらなる計算用ではありません。データを提示するためのものです。この方法でデータを提示する方が直感的に思えます。ありがとうございました。
#variable1
Politician.For<-sample(seq(0,4,1),50, replace=TRUE)
#variable2
Politician.Against<-sample(seq(0,4,1),50, replace=TRUE)
#Variable3
Activist.For<-sample(seq(0,4,1),50,replace=TRUE)
#variable4
Activist.Against<-sample(seq(0,4,1),50,replace=TRUE)
#dataframe
df<-data.frame(Politician.For, Politician.Against, Activist.For,Activist.Against)
#tidyr
df %>%
#Gather all columns
gather(df) %>%
#separate by the period character
#(default separation character is non-alpha numeric characterr)
separate(col=df, into=c('source', 'tone')) %>%
#group by both source and tone
group_by(source,tone) %>%
#summarise to create counts and average
summarise(n=sum(value), avg=mean(value)) %>%
#try to spread
spread(tone, c('n', 'value'))