dcast
からreshape2
を使用して、データフレームを長いものから広いものに変換しようとしています。 dcastはPersonとオブジェクトの数値の引数が必要になるのはなぜdcastreshape2二項演算子に数値以外の引数を使用する
> library(reshape2)
> dcast(df, Person + Object, variable.var="Value", fun.aggregate=length)
Error in Person + Object : non-numeric argument to binary operator
で、その後
> Person=c("A","A","A","A","B","B","C","C","C","C")
> Object=c("car", "watch", "bike", "phone","car","skateboard","car","bike","motorcycle")
> Value=c("1","1","1","1","1","1","1","1","1","1")
> df=data.frame(Person, Object, Value)
と取得、
> df
Person Object Value
1 A car 1
2 A watch 1
3 A bike 1
4 A phone 1
5 B car 1
6 B skateboard 1
7 C car 1
8 C bike 1
9 C motorcycle 1
10 C TV 1
:
は、私はこのようなデータフレームを作成しますとにかく列?
私はこの出力を取得しようとしています。しかし
dcast(df, Person ~ . + Object, variable.var="Value")
、データフレームはタブ区切りから輸入されています* EDIT * @neilfwsが解決策を見つけた
Person car watch bike phone skateboard motorcycle TV
A 1 1 1 1 0 0 0
B 1 0 0 0 1 0 0
C 1 0 1 0 0 1 1
区切られたファイル:
df = read.table("Person_Object.tab", header=T, sep="\t")
sa私はキャストコマンドを返します:
Error in eval(expr, envir, enclos) : object 'Person' not found
を使用することができますあなたはそれ以外のRは、あなたが2つの数値を追加しようとしていると考えて、 '〜'を含む、式を指定する必要があります。おそらく 'Person + Object〜.'ですか? – neilfws
@neilfws:ありがとう! 'dcast(df、Person〜。+ Object、variable.var =" Value ")'のようなものです。 – user31888
ファイルから同じデータフレームをインポートすると、別のエラーが返されます(上記の編集を参照してください) – user31888