我使用ff和ffbase库来管理一个大的csv文件(~40 to和275 e6)。我想根据它的一个列(这是一个因子列)来分割/分区这个文件。
对于正常的数据框架,我会这样做:
a <- data.frame(rnorm(10000,0,1),
sample(1:100,10000,replace=T),
sample(letters,10000,replace = T))
names(a) <- c('V1','V2','V3')
a_partition <- split(a,a$V3)
names(a_partition) <- paste("df",names(a_partition),sep = "_")
list2env(a_partition,globalenv())但是ff和ffbase没有一个split函数。因此,在ffbase文档中,我找到了ffdfply并尝试按以下方式使用它:
ffa <- as.ffdf(a)
ffa_partititon <- ffdfdply(x = ffa,split = ffa$V3)唉,我收到了日志消息:
计算劈裂尺寸 建立分裂的地点 处理拆分1/1,在RAM中提取26个拆分元素的数据, 总计,0.00015 GB,而max指定 使用BATCHBYTES指定的数据为0.01999 GB ..。对所选数据应用乐趣 错误:缺少参数“乐趣”,没有默认设置。
我尝试了FUN = as.data.frame (因为函数的结果必须是一个数据框架)而没有成功:这样做使ffa_partition成为ffa的一个副本.
我该如何划分我的ffdf?
发布于 2018-10-29 18:59:52
晚了两年,但我相信这能满足你的需要:
result_list <- list()
for(letter in letters){
result_list[[letter]] <- subset(ffa, V3 == letter)
}https://stackoverflow.com/questions/37344140
复制相似问题