jan*_*ans 23 export r export-to-csv
我在R中有一个相当大的数据框,我想导出到SPSS.这个文件首先导致我尝试将其导入R的几个小时的麻烦,但是我read.fwf()使用选项comment.char="%"(文件中没有出现的字符)成功使用了fill= TRUE(它是一个固定宽度的ASCII文件,缺少某些行)所有变量,导致错误消息).
无论如何,我的数据框目前包括3,900个观察值和48个变量(所有字符).我可以通过将其分成4 x 1毫米集合df2 <- df[1:1000000,]后跟write.table(df2)等等来快速地将其写入文件,但是如果没有计算机锁定并且需要硬重置才能恢复,则无法在一次扫描中写入整个文件.
在听到关于R多年来不适合大型数据集的轶事故事后,这是我第一次遇到这类问题.我想知道是否有其他方法(将文件低级"直接"转储到磁盘?)或者是否有一些我不知道的包可以有效地处理这种类型的大文件的输出?
tim*_*ffe 24
1)如果您的文件是所有字符串,那么write.table()如果您首先将其更改为a ,则可以更快地保存matrix.
2)也将它写成1000000行的块,但总是写在同一个文件中,并使用参数append = TRUE.
Mic*_*ico 14
经过Matt Dowle的广泛工作,并行化并增加了其他效率改进,fread现在比其快15倍write.csv.请参阅链接的答案了解更多
现在data.table有一个fwrite由Otto Seiskari贡献的功能,它的速度似乎是write.csv一般的两倍.见这里的一些基准.
library(data.table)
fwrite(DF, "output.csv")
Run Code Online (Sandbox Code Playgroud)
请注意,排除了行名称,因为该data.table类型不使用它们.