R 函数 read.csv 失败, "scan() expected ' 是一个真实的',得到......“消息

标签 r csv read.csv

这个问题以前有人提出过,我也尝试过他们的建议,但我认为我的案例特别有趣。我用过 read.table、read.csv 和 read.csv2。无济于事。我选择 read.csv2 是因为字段/变量用“;”分隔,这是 read.csv2 的默认分隔符(尽管你可以看到我已明确将其设置为解决方法)

数据集的第一行是:

16/12/2006;17:24:00;4.216;0.418;234.840;18.400;0.000;1.000;17.000

我的 read.csv2 是:

foo <- read.csv2(“dataset.txt",sep=";",stringsAsFactors=FALSE,na.strings='NULL',colClasses=c(rep("character",2),rep("numeric",7)))

我希望将日期和时间值作为字符串导入并显式地将它们强制转换为日期和时间:

y <- as.Date(foo[,1],"%d/%m/%Y")
x <- strptime(foo[,2],"%H:%M:%S")

我的问题是我无法通过 read.csv2。错误是:

Error in scan(file = file, what = what, sep = sep, quote = quote, dec = dec,  : 
  scan() expected 'a real', got '4.216'

这就是很棒的地方。请注意,消息显示“预期为‘a real’,得到了‘4.216’”。伙计们,4.216是真实的。注意 4.216 确实是该行的第三个值。我也试过:

foo <- read.csv2(“dataset.txt",sep=";",stringsAsFactors=FALSE,na.strings='NULL',colClasses=c(“character”,”character”,rep("numeric",7)))

我的 R 版本是 R 3.4.1 GUI 1.70 El Capitan build

有人知道问题出在哪里吗?或者这只是一个错误?

最佳答案

read.csv2 还将小数点指示符从 . 更改为 ,(参见 dec=",").因此,这种格式的“真实”值看起来像 4,216,而不是 4.216。最好坚持 read.csv(..., sep=";")

read.csv("dataset.txt", sep=";", stringsAsFactors=FALSE, na.strings='NULL')

关于R 函数 read.csv 失败, "scan() expected ' 是一个真实的',得到......“消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48194416/

相关文章:

r - Shiny 应用程序 (R) 中的交互式目录输入

r - 如何消除Roxygen关于“找不到名字…”的警告?

python - 推断字段分隔文件信息的库

r - Purrr 和 R 中的几个多元回归

r - 使用 RODBC sqlSave 将数据框从 R 写入 Teradata 中的表

python - 将带有数组的 json 数据转换为 CSV

php - 将csv文件导入MYSQL的最快方法

R 3.5 - read.csv 无法读取 UTF-16 csv 文件

使用 read.csv() 读取逗号分隔的字符串

python - 如何使用 Pandas 读取 CSV,并且只将其读入 1 列而没有 Sep 或 Delimiter