Jis*_*isL 6 r large-data tidyr tidyverse
我有一个data.frame包含 1100 万行的医院数据。
Columns: ID (chr), outcome (1|0), 20x ICD-10 codes (chr).
Rows: 10.6 million
Run Code Online (Sandbox Code Playgroud)
我希望使数据整洁,以便将诊断代码建模为二进制结果。
我通常会使用pivot_longer或 Base R函数,但由于内存(32GB RAM,运行最新 R x64 的 Windows 服务器),aggregate结果很大,而且我的机器很挣扎。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")
Run Code Online (Sandbox Code Playgroud)
库(data.table)提供了基础 R 的高性能版本data.frame(专注于速度和内存效率)。
另请参阅此相关基准。