我如何使用idata.frame()的结果?

时间:2012-03-02 13:57:43

标签: r dataframe immutability plyr

我想使用备受好评的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行为不可用,以及是否有关于差异的任何文档。

1 个答案:

答案 0 :(得分:3)

除了Hadley编写的用于处理idata.frame工作的 plyr 函数之外,我不会期待太多。我不认为哈德利为自己的 plyr 函数之外的任何东西编写方法,即便如此,他自己的文档也表明它是实验性的。

如果您希望与data.frame进行更完整的整合,Matthew Dowle是对的,请使用 data.table