【发布时间】:2017-02-12 18:56:34
【问题描述】:
我正在尝试从http://www.ercot.com/gridinfo/load/load_hist 读取一堆文件,除了最后一个文件(2017 年的文件)之外,所有文件都可以使用 read.csv 正确读取。当我尝试使用read.csv 读取文件时,我得到以下错误:
扫描错误(文件 = 文件,什么 = 什么,sep = sep,quote = quote,dec = dec,: scan() 期望 'a real',得到 '"8'
但是,我使用 Excel 进行了检查,文件中没有 "8 或 8 值。错误消息似乎很清楚,但我找不到"8 或8,即使我读取了0 行(使用nrows 函数的nrows 参数),我也有同样的问题。
hold2 <- read.csv(paste(PATH, "\\CSV\\", "native_load_2017.csv", sep=""), header=TRUE, sep=",", dec = ".", colClasses=c("character",rep("double",9)))
hold2 <- read.csv(paste(PATH, "\\CSV\\", "native_load_2017.csv", sep=""), header=TRUE, sep=",", dec = ".", colClasses=c("character",rep("double",9)), nrows=0)
此外,在文件的最后一行中,有些值不符合文件其余部分的格式。我想跳过最后一行,但 read.csv 函数中没有参数可以做到这一点。有什么解决办法吗?我正在考虑或使用类似的东西:
hold2 <- read.csv(paste(PATH, "\\CSV\\", "native_load_2017.csv", sep=""), header=TRUE, sep=",", dec = ".", colClasses=c("character",rep("double",9)), nrows=nrow(read.csv(paste(PATH, "\\CSV\\", "native_load_2017.csv", sep=""))-1))
关于如何做到最好的任何想法?谢谢
【问题讨论】:
-
如果你使用
readr::read_csv会发生什么?并且,您从哪里获取 CSV 文件?该网站有 XLS 文件。 -
df <- readxl::read_excel("~/Desktop/native_load_2017.xls") ; df <- dplyr::filter(df, !is.na(COAST))可能是从 Excel 手动保存 CSV 的更好方法,您现在可能正在这样做。 -
我已经从 XLS 手动创建了 CSV,我完全忘了提及它。文件需要以 CSV 格式存储,我不能使用 XLS 格式...
-
使用 R 进行转换。