ff包暗淡错误(选择)

时间:2013-08-12 10:00:28

标签: r bigdata

我搜索解决方案以处理大数据。所以我尝试了“ff包”。在我的正常脚本中,我使用以下代码在66896 x 362 data.frame中进行选择:

setwd(wd)
bf <- read.table("G_BANKFULL_km3month.csv",header=T, sep=",",dec=".")


## read river discharge global, monthly vlaues 1971-2000##
memory.limit(size=16000)   # increase RAM
dis <- read.table('RIVER_AVAIL_7100_WG22.txt', header=T, sep="\t", dec=".")
##


## return only grid cells where bankfull is exceeded at least once during the time 
## period
test <- cbind(dis,bf$VALUE)
test2 <- test[(test[,-c(1:3)] > test[,length(test)]), ]

如果我使用足够的RAM,它可以工作。 但我没有足够的RAM进行这样的操作所以我尝试了“ff包”。

library(ff)
## read Bankfull flow##
setwd(wd)
bf <- read.csv.ffdf(file="G_BANKFULL_km3month.csv",header=TRUE)
## read river discharge global, monthly vlaues 1971-2000##
memory.limit(size=16000)   # increase working memory
dis <- read.table.ffdf(file='RIVER_AVAIL_7100_WG22.txt', header=T, sep="\t", dec=".")
##read bankfull values as ff object##
bfvalues <- ff(bf[,2])
##combination of bf and dis ( see test <- cbind(dis,bf$VALUE))
dis_bf <- do.call('ffdf', c(physical(dis), list(bfvalues=bfvalues)))

dis_bf_test <-  dis_bf[(dis_bf[,-c(1:3)] > dis_bf[,length(dis_bf)]),]

ffdf和普通的data.frame有相同的结构等但如果我尝试这最后的选择它不起作用,我得到以下错误:

Error in as.hi.matrix(i, maxindex = nvw$n, vw = nvw$vw, pack = FALSE,  : 
argument "dim" is missing, with no default

也许你们中的某个人使用过ff包,并且知道为什么它不起作用。对于处理大数据的其他软件包和解决方案,我也很满意。 干杯

1 个答案:

答案 0 :(得分:0)

为什么不替换代码

dis_bf_test <-  dis_bf[(dis_bf[,-c(1:3)] > dis_bf[,length(dis_bf)]),]

require(ffbase)
open(dis_bf_test)
dis_bf_test <- subset(dis_bf_test, yourcolumnname > youothercolumnname)

其中您的columnname代表您dis_bf[,-c(1:3)]所指示的列,而您的其他列名称代表您使用dis_bf[,length(dis_bf)]指示的列