当我使用与ffdf合并时,我看到了一些奇怪的行为,我想知道是否有人可以向我解释为什么会发生这种情况,我该如何解决它。
以下是常规数据框的示例:
dfx<-data.frame(a=1: 3, b=4:6)
> dfy<-data.frame(a=c(1, 1, 1, 3), c=7:10)
> dfm<-merge(dfx,dfy)
> dfm
a b c
1 1 4 7
2 1 4 8
3 1 4 9
4 3 6 10
以下是ffdf:
的代码>ffdfx <- as.ffdf(data.frame(a=1: 3, b=4:6))
>ffdfy <- as.ffdf(data.frame(a=c(1, 1, 1, 3), c=7:10)
> ffdfm[1:nrow(ffdfm),]
a b c
1 1 4 7
2 3 6 10
我期待第一种情况,但我得到了第二种情况。我对此事表示感谢。
答案 0 :(得分:1)
您看到的行为正是来自包merge.ffdf
的{{1}}中记录的内容。在ffbase
:merge.ffdf
通过公共列合并两个ffdf,或者执行其他版本的数据库联接操作。此方法类似于基础包中的合并,但仅允许内部和外部联接。 请注意,连接是基于ffmatch或ffdfmatch完成的:只有y中的第一个元素才会添加到x;