R пакет ff с перекрестными произведениями нескольких разных ключей не работает

Я сталкиваюсь с трудностями при использовании пакета ff, когда пытаюсь создать перекрестные продукты из нескольких разных ключей. При использовании expand.ffgrid() нет проблем при передаче отдельных объектов ff, как показано ниже:

test_ff <- expand.ffgrid(a=ff(c(0,1,2)), b=ff(c(0,1))) #-- Runs fine

Однако, чтобы реализовать это для среды, в которой я не знаю, сколько объектов ff я передаю, я бы хотел передать эти объекты в виде списка, как показано ниже.

test_ff <- expand.ffgrid(list(a=ff(c(0,1,2)), b=ff(c(0,1)))) #-- This fails

Документация подразумевает (не очень ясно), что это должно быть возможно, и этот синтаксис отлично работает с помощью expand.grid(). Эта функция еще не реализована в ff или я что-то упустил?

Моя первоначальная проблема состоит в том, чтобы создать полное внешнее объединение для нескольких фреймов данных - это нелегко (или возможно?) В ff действительно вызывает у меня головную боль!

1 ответ

Решение

В настоящее время списки не реализованы, но почему бы не использовать do.call в этом случае? Как в

require(ffbase)
x <- list(a=ff(c(0,1,2)), b=ff(c(0,1)))
test_ff <- do.call(expand.ffgrid, x)

Я добавлю запрос функции на GitHub

Другие вопросы по тегам