我一直试图通过尝试不同的变量和函数并查看结果来了解 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, ...) :
2 个参数传递给 'length' 需要 1
这些例子更多地表明我根本不了解如何使用 plyr。
任何答案或解释表示赞赏。