为什么merge在下面的代码中不能工作?它会给出错误` error:
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但是,如果我不进行强制转换,它就会起作用:
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")发布于 2013-12-16 17:19:57
有意思的。merge.ffdf是ffbase的一部分,所以这应该可以工作,但显然在做ffbase:::as.ff_matrix.ffdf时,PhysicalIsMatrix仍然是正确的。这可能会扰乱通用调度。
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。谢谢。
https://stackoverflow.com/questions/20603731
复制相似问题