pivot_longer 具有非常大的 data.frame,内存高效的方法

问题描述 投票:0回答:1

我有

data.frame
的医院数据,有 1100 万行。

Columns: ID (chr), outcome (1|0), 20x ICD-10 codes (chr).
Rows: 10.6 million

我希望使数据整洁,以便将诊断代码建模为二进制结果。

我通常会使用

pivot_longer
或 Base R
aggregate
函数,但由于内存(32GB RAM,运行最新 R x64 的 Windows 服务器),生成的
data.frame
很大,我的机器很挣扎。

我将分别拆分

data.frame
pivot_longer
,并手动添加列以允许绑定
data.frame
之后,或分别对每个拆分
data.frame
进行建模。

有没有一种方法可以用来减少数据大小或实现我所缺少的类似目标?

r data.table tidyverse tidyr large-data
1个回答
4
投票

尝试使用

data.table::melt
代替:

library(data.table)

DF <- data.frame(ID = LETTERS, replicate(10, sample(0:1, 26, rep=TRUE)))
setDT(DF)
melt(DF, id.vars = "ID")

library(data.table) 提供了基础 R

data.frame
的高性能版本(专注于速度和内存效率)。

另请参阅此相关基准测试

© www.soinside.com 2019 - 2024. All rights reserved.