我想使用备受好评的idata.frame()
函数来加速一些大型plyr函数,但它并没有以我期望的形式返回不可变数据帧。
我见过的所有示例都表明我可以将idata.frame(baseball)
分配给一个新变量并开始使用它,但是我从函数中得到了意想不到的结果:
> ibb <- idata.frame(baseball)
> str(ibb)
Classes 'idf', 'environment' <environment: 0x0d0f15d8>
> ibb
<environment: 0x0d0f15d8>
attr(,"class")
[1] "idf" "environment"
感谢您的任何提示。我正在使用R版本2.14.1和plyr 1.7.1。
编辑:在上面的示例中,可以成功运行ddply(idata.frame(ibb), .(year), "nrow")
,因此不可变对象在这方面正如预期的那样工作。我想知道为什么某些data.frame
行为不可用,以及是否有关于差异的任何文档。
答案 0 :(得分:3)
除了Hadley编写的用于处理idata.frame
工作的 plyr 函数之外,我不会期待太多。我不认为哈德利为自己的 plyr 函数之外的任何东西编写方法,即便如此,他自己的文档也表明它是实验性的。
如果您希望与data.frame
进行更完整的整合,Matthew Dowle是对的,请使用 data.table 。