Как я могу использовать результат idata.frame ()? - PullRequest
1 голос
/ 02 марта 2012

Я хотел бы использовать функцию 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 Ответ

3 голосов
/ 03 марта 2012

Я бы не ожидал намного большего, чем функции plyr , которые Хэдли написал для обработки idata.frame.Я не думаю, что Хэдли написал методы для чего-то кроме его собственных plyr функций, и даже тогда его собственная документация утверждает, что это экспериментально.

Если вы хотите более полную интеграцию с data.frame, Мэтью Доул прав, используйте data.table .

...