我有这个包含 57000 行和 5500 列的数据集。它们既是数字变量又是字符变量。我最初以 .dta 格式下载数据,Stata 读取它非常快。timer
当我使用命令计时时,它需要 0.13 个烤饼。
现在,我一直在使用 R,并且从我读过的内容来看,它应该更有效率。我将我的数据从 Stata 导出到 csv,甚至按照我在堆栈交换中阅读的建议,结果并不令人信服。
这是我遇到的最佳解决方案:
library(data.table)
system.time(fread("~/Data/GSS/GSS.csv", stringsAsFactors=FALSE, header=T, na.strings=paste0(".",letters), data.table=FALSE)
)
我得到:
Read 57061 rows and 5548 (of 5548) columns from 1.053 GB file in 00:00:46
user system elapsed
52.000 1.492 53.470
尽管我已经声明了缺失值,但我也收到了很多关于缺失值的警告。警告:
Bumped column XXXX to type character on data row XXXX, field contains '.n'.
我认为这与 R 无法识别数字列中的这些缺失值有关
关于如何改进这一点的任何建议?附带说明一下,我尝试了 sqldf 但它在我的计算机上不起作用,甚至将软件包升级到最新版本。
这是我正在使用的数据: http ://www3.norc.org/GSS+Website/Download/