私から、次の表に変更するにはどうすればよい:この表ははどのように適切にtidyrに広がり関数を使用するには
Type Name Answer n
TypeA Apple Yes 5
TypeA Apple No 10
TypeA Apple DK 8
TypeA Apple NA 20
TypeA Orange Yes 6
TypeA Orange No 11
TypeA Orange DK 8
TypeA Orange NA 23
変更にdf_1と呼ばれる :
Type Name Yes No DK NA
TypeA Apple 5 10 8 20
TypeA Orange 6 11 8 23
私は以下のコードを使用します最初のテーブルを取得します。
df_1 <-
df %>%
group_by(Type, Name, Answer) %>%
tally()
は、その後、私は2番目のテーブルに取得するにはスプレッドコマンドを使用しようとしましたが、私は次のエラーメッセージました:「エラー:すべての列が名前を付ける必要があります」
df_2 <- spread(df_1, Answer)
このメソッドは、上記のコードで機能します。しかし、第1のテーブルのn列(すなわち、df_1)がタリー関数を使用してシステム生成される場合、このメソッドは機能しません。それでも、エラー:すべての列に名前を付ける必要があります。タリーを使用してn列を生成するために使用したコードは、上にリストされています。この場合、スプレッドがn列を認識しないように見えます。その他の提案はありますか? – ayk
アイデア1: 'df_1'の作成の終わりにdplyr :: ungroup()を使います。 – wibeasley
アイデア2: 'as.data.frame()'でキャストします。アイデア3: 'dput()'で出力すると、より良い構造を見ることができます。 http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-exampleさもなければ、あなたは 'df_1'をどのように入手したかを見るのが難しいです。 – wibeasley