簡體   English   中英

是否有一個函數將大數據幀拆分為n個相同大小的較小數據幀(按行)並且具有較小尺寸的n + 1數據幀?

[英]Is there a function to split a large dataframe into n smaller dataframes of equal size (by row) and have an n+1 dataframe of smaller size?

標題幾乎說明了它。 我有一個數據框,有7百萬行,對我來說太大了,我可以在沒有機器崩潰的情況下進行分析。 我想將它拆分為100個具有70,000行的較小數據幀,並使第101個數據幀具有剩余行(<70,000)。 這似乎是非平凡的。

我知道我可以手動計算n+1數據幀的大小,刪除它,然后按以下方式使用split函數:

d <- split(my_data_frame,rep(1:100,each=70,000))

但是我有多個大型數據幀,所有這些計算都很繁瑣。 有替代解決方案嗎?

這樣的事情怎么樣:

df <- data.frame(x = 1:723500, y = runif(7235000))
split(df, rep(1:100, each = round(NROW(df) / 100, -4)))

或者抽象一些:

num_dfs <- 100
split(df, rep(1:num_dfs, each = round(NROW(df) / num_dfs, -4)))

您可能需要考慮caret包中的內容,例如: caret::createFolds(df$x)

暫無
暫無

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

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