Слияние кадров данных ffdf в R

Мне нужно внешнее соединение кадров данных ffdf, сохраненных в списке. Проверили это, но это относится к другой проблеме. Пример кода для объектов RAM:

x1 = data.frame(name='a1', Ai=2, Ac=1, Bi=1)
x2 = data.frame(name='a2', Ai=1, Bi=3, Bc=1, Ci=1)
x3 = data.frame(name='a3', Ai=3, Ac=2, Bi=2, Ci=3, Cc=1, Di=2, Dc=2)
x4 = data.frame(name='a4', Ai=3, Bi=2, Ci=1, Fi=2)
dl = list(x1,x2,x3,x4)
mergedDF = Reduce(function(...) merge(..., all=T), dl)
mergedDF[is.na(merged.data.frame)] = 0

Желаемый результат выглядит так:

mergedDF
  name Ai Bi Ci Ac Bc Cc Di Dc Fi
1   a1  2  1  0  1  0  0  0  0  0
2   a2  1  3  1  0  1  0  0  0  0
3   a3  3  2  3  2  0  1  2  2  0
4   a4  3  2  1  0  0  0  0  0  2

Пока я перевожу кадры данных в ffdf, я получаю сообщение об ошибке

Error in merge.ffdf(..., all = T) : merge.ffdf only allows inner joins

Какие-нибудь известные обходные пути? Спасибо заранее.


person Audrey    schedule 03.03.2014    source источник
comment
Если я правильно понял ваш вопрос. Разрабатываемая версия ffbase содержит функцию ffdfrbind.fill (аналогичную rbind.fill). library(devtools); install_github("edwindj/ffbase", subdir="pkg") установит эту версию разработки. Обычно ffdfrbind.fill(x1, x2, x3, x4) доставит вас туда.   -  person    schedule 04.03.2014
comment
Функциональность rbind.fill — это то, что действительно нужно. К сожалению, я получаю эту ошибку, когда пытаюсь install_github("edwindj/ffbase", subdir="pkg"): ERROR: compilation failed for package 'ffbase'   -  person Audrey    schedule 04.03.2014
comment
Я считаю, что вы работаете над окнами. Если вы хотите установить пакет из исходного кода, как это делается с помощью install_github, вам необходимо установить Rtools. У вас установлен Rtools? cran.r-project.org/bin/windows/Rtools   -  person    schedule 04.03.2014
comment
Rtools на вашем пути. Может быть, вам нужно перезагрузить компьютер, прежде чем он окажется на вашем пути?   -  person    schedule 04.03.2014
comment
Установил, все равно функция ffdfrbind.fill отсутствует :-(   -  person Audrey    schedule 04.03.2014
comment
Правильно, его еще нет в пространстве имен. Вы можете получить к нему доступ на данный момент как ffbase:::ffdfrbind.fill. В следующих выпусках ffbase вы можете удалить часть ffbase:::   -  person    schedule 04.03.2014
comment
Круто как обычно. Задача решена.   -  person Audrey    schedule 04.03.2014


Ответы (1)