首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么merge在从ff_matrix转换的ffdf上不起作用

为什么merge在从ff_matrix转换的ffdf上不起作用
EN

Stack Overflow用户
提问于 2013-12-16 12:55:43
回答 1查看 128关注 0票数 0

为什么merge在下面的代码中不能工作?它会给出错误` error:

代码语言:javascript
复制
require(ff)
require(ffbase)


a <- ffbase:::as.ff_matrix.ffdf(as.ffdf(data.frame(matrix(rnorm(10),ncol=2))))
b <- ffbase:::as.ff_matrix.ffdf(as.ffdf(data.frame(matrix(rnorm(10),ncol=2))))

a <- as.ffdf(a)
b <- as.ffdf(b)

colnames(a) <- 1:2
colnames(b) <- 3:4

a$RN <- as.ff(1:5)
b$RN <- as.ff(1:5)

c <- merge(a,b,by="RN") #ERROR

但是,如果我不进行强制转换,它就会起作用:

代码语言:javascript
复制
a <- as.ffdf(data.frame(matrix(rnorm(10),ncol=2)))
b <- as.ffdf(data.frame(matrix(rnorm(10),ncol=2)))

colnames(a) <- 1:2
colnames(b) <- 3:4

a$RN <- as.ff(1:5)
b$RN <- as.ff(1:5)


c <- merge(a,b,by="RN")
EN

回答 1

Stack Overflow用户

发布于 2013-12-16 17:19:57

有意思的。merge.ffdf是ffbase的一部分,所以这应该可以工作,但显然在做ffbase:::as.ff_matrix.ffdf时,PhysicalIsMatrix仍然是正确的。这可能会扰乱通用调度。

代码语言:javascript
复制
ffdf (all open) dim=c(5,3), dimorder=c(1,2) row.names=NULL
ffdf virtual mapping
   PhysicalName VirtualVmode PhysicalVmode  AsIs VirtualIsMatrix PhysicalIsMatrix PhysicalElementNo PhysicalFirstCol PhysicalLastCol PhysicalIsOpen
1             x       double        double FALSE           FALSE             TRUE                 1                1               1           TRUE
2             x       double        double FALSE           FALSE             TRUE                 1                2               2           TRUE
RN           RN      integer       integer FALSE           FALSE            FALSE                 2                1               1           TRUE

你能在https://github.com/edwindj/ffbase/issues上报告这件事吗?我将查看一下是否可以更改未导出的ffbase:::as.ff_matrix.ffdf。谢谢。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20603731

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档