私は、さまざまな変数や関数を試し、結果を確認することで、plyr がどのように機能するかを理解しようと努めてきました。だから私は、それが答える特定の修正よりも、plyrがどのように機能するかの説明を探しています。ドキュメントを読みましたが、私の初心者の脳はまだそれを理解していません。
いくつかのデータと名前:
mydf<- data.frame(c("a","a","b","b","c","c"),c("e","e","e","e","e","e")
,c(1,2,3,10,20,30),
c(5,10,20,20,15,10))
colnames(mydf)<-c("Model", "Class","Length", "Speed")
mydf
質問 1: 構文の要約と変換
だから私が入力した場合:ddply(mydf, .(Model), summarise, sum = Length+Length)
私は得る:
`Model ..1
1 a 2
2 a 4
3 b 6
4 b 20
5 c 40
6 c 60
入力するとddply(mydf, .(Model), summarise, Length+Length)
、同じ結果が得られます。
変換を使用する場合:ddply(mydf, .(Model), transform, sum = (Length+Length))
私は得る:
Model Class Length Speed sum
1 a e 1 5 2
2 a e 2 10 4
3 b e 3 20 6
4 b e 10 20 20
5 c e 20 15 40
6 c e 30 10 60
しかし、最初の要約のように述べると:
ddply(mydf, .(Model), transform, (Length+Length))
Model Class Length Speed
1 a e 1 5
2 a e 2 10
3 b e 3 20
4 b e 10 20
5 c e 20 15
6 c e 30 10
では、なぜ「sum =」を追加すると違いが生じるのでしょうか?
質問 2: これらが機能しないのはなぜですか?
ddply(mydf, .(Model), sum, Length+Length)
# 関数 (i) のエラー: オブジェクト '長さ' が見つかりません
ddply(mydf, .(Model), length, mydf$Length) #Error in .fun(piece, ...) :
1 つを必要とする 'length' に 2 つの引数が渡されました
これらの例は、どこかで plyr の使い方を根本的に理解していないことを示しています。
アンサーや説明をいただければ幸いです。