【问题标题】:Error reading csv as a zoo object - certain lines with 'bad entries'将 csv 作为动物园对象读取时出错 - 某些行带有“错误条目”
【发布时间】:2015-08-19 10:03:30
【问题描述】:

我正在处理天气数据的时间序列(可用here)并尝试将其转换为动物园对象,以便我可以使用适用于动物园对象的包(“蒸发蒸腾”)。

我使用的代码是:

require(zoo)
x = read.zoo(file = "OakParkR.csv", format = "%d-%b-%y", tz = "", index.column = 1)

我得到的错误状态:

index has bad entries at data rows: 1 36 166 167 214 265 272 276 279 288 290 
292 299 305 308 321 323 328 332 341 344 354 359 372 376 384 392 590 592 676
924 925 1666 1667 1668 1669 2420 2421 2422 2424 2426 2427 2441 2442 2443 2444 2794

通过查看其他问题和解决方案 - 我认为日期格式正确,因为只有某些行被突出显示为“错误条目”,而不是全部。除了日期格式错误之外,我看不到其他问题。

我不明白为什么只有一些行有错误而其他行没有,也许有人以前见过这个问题?

【问题讨论】:

  • 您需要跳过第一行,因为它包含标题。您还需要告诉read.zoo 缺失值是如何编码的。
  • 谢谢我修改了现在的代码:x = read.zoo(file = "OakParkR.csv", header = T, format = "%d-%b-%y", tz = "", index.column = 1, na.strings =" ") 但除了第 1 行之外的每一行我仍然得到一个错误。我也尝试过 na.strings = "" 和 na.strings = "\t"

标签: r zoo


【解决方案1】:

您的csv 有空值。你可以用 NA 填充,然后变成 zoo 对象。你可以试试这个:

x<- read.csv("OakParkR.csv", header=TRUE)
na.fill(x,NA)
x<- zoo(x)
x[33:35]
#date      imax Tmax imin Tmin  irain rain cbl    wdsp ihm hm iddhm ddhm ihg hg soil  
#33 02-Feb-07 0     9.1 0     -1.7 0      0.1 1026.2  3.9 0   10 0     340  0   14  5.970
#34 03-Feb-07 0     9.2 0     -3.0 0      0.0 <NA>    2.4 0    7 0     130  0   11  3.101
#35 04-Feb-07 0     7.7 0     -3.7 0      0.0 1031.8  3.3 0    8 0     330  0   12  2.668

【讨论】:

  • na.fill 行无效,上面的结果是一个代表“字符”矩阵的动物园对象,其中第一列是“字符”中的日期。索引将是 1, 2, 3, ... 这不太可能是您想要的。
【解决方案2】:

指定 header = TRUEsep = "," 并省略 tz=""(除非确实需要 "POSIXct" 日期时间 - 但由于输入没有时间 "Date" 类,如果我们省略 @987654326 @,在这里似乎更合适)。

library(zoo)

z <- read.zoo("OakParkR.csv", header = TRUE, sep = ",", format = "%d-%b-%y")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多