私はRに比較的慣れていないので、データを適切な形式に変換しようとすると、ちょっとハングアップします。reshapeパッケージはこれに役立つようですが、それ以上のことはしません。
列の1つ(V4)に文字列と数値が含まれているデータフレームがあります。V2とV1で与えられたグループ化によってV4を分割し、結果を3つの別々の列としてデータフレームに添付したいと思います。
編集:私の元のサンプルデータフレームは問題の複雑さを完全には捉えていなかったので、より正確な例を次に示します。
>df <- data.frame(V1=c(rep("SN", 8),rep("JK", 4)),
V2=c(1,1,2,2,2,3,3,3,1,1,2,2),
V3=c("Picture", "Response", "Sound", "Sound", "Response", "Sound", "Sound", "Response", "Sound", "Response", "Sound", "Sound"),
V4=c("Photo", "100", "XYZc02i03", "XYZq02i03", 200, "ZYXc01i30", "ZYXq01i30", 100, "XYZc02i40", 200, "XYZc02i03", "XYZq02i03" ),
stringsAsFactors=FALSE)
>V1 V2 V3 V4
SN 1 Picture Photo
SN 1 Response 100
SN 2 Sound XYZc02i03
SN 2 Sound XYZq02i03
SN 2 Response 200
SN 3 Sound ZYXc01i30
SN 3 Sound ZYXq01i30
SN 3 Response 100
JK 1 Sound XYZc02i40
JK 1 Response 200
JK 2 Sound XYZc02i03
JK 2 Sound XYZq02i03
そして、私はこのようなものを手に入れたいです:
V1 V2 V3 V4 V5 V6
SN 1 Picture Photo NA 100
SN 2 Sound XYZc02i03 XYZq02i03 200
SN 3 Sound ZYXc01i30 ZYXq01i30 100
JK 1 Sound XYZc02i40 NA 200
JK 2 Sound XYZc02i03 XYZq02i03 NA
編集:V2で常に同じ数の観測値があるとは限りません。つまり、取得したいデータフレームにV4、V5、またはV6の値が欠落している可能性があります。
Edit2:V6は、V3からの「応答」変数にマップする必要があります。V4およびV5は、理想的には、V3からの「サウンド」値に連続した順序でマップします。
これについてのアドバイスをいただければ幸いです。または、この問題が他の場所で解決されていて、私がそれを見逃した場合は、リンクも素晴らしいでしょう。