【发布时间】:2012-07-06 22:11:27
【问题描述】:
我一直试图通过尝试不同的变量和函数并查看结果来了解 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 个参数传递给需要 1 个的 'length'
这些例子更多地表明我根本不了解如何使用 plyr。
感谢任何回答者或解释。
【问题讨论】: