我有
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
进行建模。
有没有一种方法可以用来减少数据大小或实现我所缺少的类似目标?
尝试使用
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
的高性能版本(专注于速度和内存效率)。
另请参阅此相关基准测试。