如何高效读取大型数据集?

3

如何在R中轻松读取大型数据集(约6 GB),而不会出现假死情况?每当我读取大型数据集时,R都会卡住。


2
你尝试过"data.table"中的fread吗?还尝试了什么? - A5C1D2H2I1M1N2O1R2T1
我尝试过的唯一方法是将Excel文件分割成较小的文件(每个文件约50 MB),然后逐个读取子文件。 - lord12
1
如果数据是矩形的,并且输入格式为文本格式(如CSV),那么可以尝试使用fread。你的源文件是二进制Excel文件吗? - A5C1D2H2I1M1N2O1R2T1
是的,它是一个有大约20列的二进制Excel文件。希望fread不会导致R崩溃。 - lord12
你尝试过在AWS上使用具有足够RAM和CPU功率的实例来运行R-Studio AMI吗? - vagabond
2个回答

3
如果您的数据在 .xlsx 或 .xlsm 文件中,您可能需要考虑使用新的 readxl 包,该包使用 C 库解析 Excel 文件中的 XML 结构。我相信这是目前 R 中速度最快的选项。
install.packages("readxl")
library(readxl)
df <- read_excel("myfile.xlsx", sheet = 1, col_names = TRUE, na = "")

@lord12,这个解决方案应该很快,我对实际性能很感兴趣。你能在这个帖子中报告加速比吗? - Patric

3
请查看Hadley开发的最新readr包。这里。它声称比原来快10倍,并提供了相同的功能来加载纯文本数据集,例如read_csv、read_delim和read_tsv等。
另一个选择是使用data.table包。它提供了类似的加载工具,比read.csv或read.delim快得多。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接