我正在使用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()
操作速度很快,但构建位向量相当慢。 你有什么更好的建议吗?
ff
,我可以做得更简单,比如with(subset(a.fdf, YEAR==1999), table(AGE))
。ff
是使它变得棘手的部分。 - Ken Williams