我正在使用R的ff程序包,并且需要使用一些ffdf对象(尺寸约为1.5M x 80)。不过,在有效进行切片/切块操作时,我遇到了一些麻烦。

例如,我有两个名为“YEAR”和“AGE”的整数列,并且我想在YEAR为2005时制作一张AGE表。

一种方法是这样的:

ffwhich <- function(x, expr) {
  b <- bit(nrow(x))
  for(i in chunk(x)) b[i] <- eval(substitute(expr), x[i,])
  b
}
bw <- ffwhich(a.fdf, YEAR==1999)
answer <- table(a.fdf[bw, "AGE"])
table()操作速度很快,但是构建位向量的速度却很慢。有人有任何建议可以做得更好吗?

最佳答案

软件包ffbaseff/ffdf对象提供了许多基本功能,包括subset.ff。经过有限的测试,看来subset.ff相对较快。尝试加载ffbase,然后使用您在上一条注释中建议的更简单的代码(with(subset(a.fdf, YEAR==1999))。

关于r - 在R中子集ffdf对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4349595/

10-12 17:17