Мне нужно внешнее соединение кадров данных 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
Какие-нибудь известные обходные пути? Спасибо заранее.
ffdfrbind.fill
(аналогичную rbind.fill).library(devtools); install_github("edwindj/ffbase", subdir="pkg")
установит эту версию разработки. Обычно ffdfrbind.fill(x1, x2, x3, x4) доставит вас туда. - person   schedule 04.03.2014install_github("edwindj/ffbase", subdir="pkg")
:ERROR: compilation failed for package 'ffbase'
- person Audrey   schedule 04.03.2014ffdfrbind.fill
отсутствует :-( - person Audrey   schedule 04.03.2014ffbase:::ffdfrbind.fill
. В следующих выпусках ffbase вы можете удалить частьffbase:::
- person   schedule 04.03.2014