performance - 将数据集分成 block

标签 performance r dataframe

我在 R 中有一个函数,如果我将它应用到超过 1000 行的数据集,它就会阻塞。因此,我想将我的数据集拆分为一个包含 n 个块的列表,每个块不超过 1000 行。

这是我目前用来进行分块的函数:

chunkData <- function(Data,chunkSize){
    Chunks <- floor(0:(nrow(Data)-1)/(chunkSize))
    lapply(unique(Chunks),function(x) Data[Chunks==x,])
}
chunkData(iris,100)

我想让这个函数更高效,以便它在大型数据集上运行得更快。

最佳答案

您可以使用 split 轻松完成此操作来自 base R。例如,split(iris, 1:3) , 将拆分 iris数据集按行转换为三个数据框的列表。您可以修改参数以指定块大小。

由于输出仍然是数据框列表,您可以轻松使用 lapply在输出上处理数据,并根据需要组合它们。

由于速度是使用这种方法的主要问题,我建议您查看 data.table包,它适用于大型数据集。如果您指定有关您要在功能中实现的目标的更多信息,SO 的人员可能会提供帮助。

关于performance - 将数据集分成 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8762719/

相关文章:

python - Pandas DataFrame没有属性 'is_monotonic_increasing'

r - 合并大量 data.frames

javascript - 浏览器性能显示/可见性

php - 最快的 MYSQL SELECT 查询与 JOINS(连接本身)

javascript - 加载特定脚本后如何显示某些内容?

r - 将字符串列表转换为表达式列表?

mysql - 在 MySQL 中快速插入和搜索大号的最佳解决方案。行数?

r - 将 R 时间列转换为特定字符串

r - 使用 R 和 plot.ly - 如何编写脚本将我的输出保存为网页

python - 如何将数据帧中的值添加到字典内的另一个数据帧中?