【发布时间】:2020-08-03 17:22:40
【问题描述】:
我正在运行下面的代码来检索一个数据集,不幸的是它使用了“。”而不是 NA 来表示缺失的数据。经过大量的争论和搜索 SO 和其他论坛,我仍然无法让代码替换“。”的所有实例。使用 NA 所以我可以将列转换为数字并继续我的生活。我很确定问题出在屏幕和椅子之间,所以我认为不需要发布 sessionInfo,但请让我知道。帮助解决这个问题将不胜感激。前四列是设置日期和唯一 ID 的整数,所以我只需要更正其他列。提前谢谢大家!
library(data.table)
google_mobility_data <- data.table(read.csv("https://github.com/OpportunityInsights/EconomicTracker/raw/main/data/Google Mobility - State - Daily.csv",stringsAsFactors = FALSE))
# The following line is the one where I can't make it work properly.
google_mobility_data[, .SD := as.numeric(sub("^\\.$", NA, .SD)), .SDcols = -c(1:4)]
【问题讨论】:
-
你可以使用 fread 来输入你的数据,它接受 na.strings 参数来声明。是 NA
-
谢谢@MichaelChirico。这将是一个完美的解决方案,但是......我在 curl::curl_download 中遇到错误,HTTP 错误 400。这在我的两台机器上(都是 Windows 10,一台运行 R 3.6.1,另一台运行 4.0.2 .
-
也许使用
readLines将数据加载为字符向量。然后gsub将,.,更改为,NA,和,.$更改为,NA$。 (对.进行适当的转义)然后使用fread读取修改后的字符向量。 -
如果您收到 fread 的 Http 错误,但不是 read.csv,您能否提交错误报告?
-
是的,会的。谢谢你的建议。
标签: r regex data.table