r - fread 函数中“强制引入的 NA”的警告
问题描述
我正在尝试fread()
读取包含 2 列(x,y)和约 3 亿行(62 GB)的表,并在散点图中绘制 x 和 y。我正在使用“fread”,如果我只使用一小部分数据,比如 30000 行,它就可以正常工作。
但是,如果我在整个数据集上运行它,我得到:
“警告消息:在 setattr(ans, "row.names", .set_row_names(nr)) 中:NAs 由强制引入整数范围 /var/spool/torque/ mom_priv/jobs/11244921.cri16sc001.SC:第 14 行:70765 杀死 Rscript 10_plotZ0Z1.R"
可能是什么原因?
解决方案
您可以按照评论中的建议对您的大文件进行采样。不幸的是,似乎fread
还没有实现这样的功能 - 请参阅这个未解决的问题(支持该功能可以激励开发人员致力于它)。但正如这里提到的,如果你在 Linux 上,那么试试shuf -n
shell 命令:
library(data.table)
# Generate some random data
dt <- data.table(x = rnorm(10^6), y = rnorm(10^6))
# write to csv file
fwrite(dt, "test-dt.csv")
# Read a random sample of 10^5 rows
dt2 <- fread(cmd = "shuf -n 100000 test-dt.csv")
dt[, plot(x,y)]
或者,您可以通过多次调用来从文件中读取行块,如此处fread
所示。
推荐阅读
- msal - How to implement IMultipleAccountPublicClientApplication in a app requiring multiple calls to secure APIs
- javascript - 收集器出错 | 不和谐.js
- html - 引导程序 | 你应该什么时候使用
超过
- node.js - puppeteer - how to intercept requests and responses only from a certain url in nodejs
- javascript - 带有 preventDefault 的简单表单不起作用(没有任何 jquery)
- flutter - 从图像选择器获取图像时,在 null 上调用了方法“add”
- python - 熊猫融化2组柱子
- office-js - 插件对话框中的 excel 上下文同步错误
- python - 为什么错误消息不会出现在 Flask 的表单验证中?
- javascript - 如何为lineString OpenLayers 5设置不同的颜色