簡體   English   中英

拆分ffdf對象

[英]Splitting an ffdf object

我正在使用ffffbase庫來管理一個大的csv文件(~40Go和275e6觀察)。 我想根據其中一個列(這是一個因子列)拆分/分區此文件。

使用正常的數據框,我會做類似的事情:

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())

但是ffffbase沒有split功能。 因此,查看ffbase文檔,我發現ffdfply並嘗試使用它如下:

ffa <- as.ffdf(a)
ffa_partititon <- ffdfdply(x = ffa,split = ffa$V3)

唉,我收到了日志消息:

計算分割大小
建立分裂地點
在分裂1/1上工作,在RAM中提取26個分裂元素的數據,
總計,0.00015 GB,同時指定最大值
使用BATCHBYTES指定的數據為0.01999 GB
...將FUN應用於所選數據
錯誤:缺少參數“FUN”,沒有默認值

我嘗試了FUN = as.data.frame (因為函數的結果必須是數據框)而沒有運氣:這樣做使ffa_partition成為ffa的副本...

我如何分區我的ffdf?

遲了兩年,但我相信這可以滿足您的需求:

result_list <- list()
for(letter in letters){
    result_list[[letter]] <- subset(ffa, V3 == letter)
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM