【发布时间】:2019-08-07 08:53:01
【问题描述】:
当我尝试使用 zoo 包绘制时间序列数据时,我遇到了:plot.window(...) 中的错误:'ylim' 值无效。虽然 plot.zoo 给了我错误,但 plot.ts 工作正常。 plot(mydata) 也给出了同样的错误。
数据已从 .csv 文件加载,如下所示:
Value
03.01.2011 6.2100
04.01.2011 6.4280
05.01.2011 6.7290
06.01.2011 6.6000
07.01.2011 6.7970
...
mydata <- read.zoo(mydata, sep = "\t", header = TRUE, format = "%d.%m.%Y", fileEncoding = "UTF-16")
头(我的数据)
Value
2011-01-03 6.210
2011-01-04 6.428
2011-01-05 6.729
2011-01-06 6.600
2011-01-07 6.797
输入(我的数据)
structure(c(" 6.210", " 6.428", " 6.729", " 6.600", " 6.797", " ..."),
.Dim = c(2023L, 1L), .Dimnames = list(NULL, "Value"), index =
structure(c(14977, 14978, 14979, 14980, 14981, ...), class = "Date"), class = "zoo")
来自相同来源和背景的数据(mydata2)与 plot.zoo 完美配合。相反,它给了我一些不同的 dput() 输出。 值不在“引号(第一个数字之前也没有多余的空格)”之间,我想知道这是否是问题所在。
头(我的数据2)
Value
2010-12-31 533.99
2011-01-03 541.30
2011-01-04 548.33
2011-01-05 544.73
2011-01-06 556.61
输入(mydata2)
structure(c(533.99, 541.3, 548.33, 544.73, 556.61, ...),
.Dim = c(2023L, 1L), .Dimnames = list(NULL, "Value"), index =
structure(c(14974, 14977, 14978, 14979, 14980, ...), class = "Date"), class = "zoo")
我已将上面提供的 read.zoo 用于两个 .csv 文件将数据加载到 R 中。两者都有制表符 ("\t") 作为分隔符,日期格式为 03.01.2019 ("%d.%m.% Y"),文件编码 ("UTF-16")。我不明白为什么一个数据加载了额外的空格和引号,我认为这是 plot.zoo 函数出错的原因。
sapply(readLines(mydata, 6, skipNul = TRUE), charToRaw)
$`\tValue`
[1] 09 43 6c 6f 73 65
$`03.01.2011\t6.2100`
[1] 30 33 2e 30 31 2e 32 30 31 31 09 36 2e 32 31 30 30
$`04.01.2011\t6.4280`
[1] 30 34 2e 30 31 2e 32 30 31 31 09 36 2e 34 32 38 30
$`05.01.2011\t6.5900`
[1] 30 35 2e 30 31 2e 32 30 31 31 09 36 2e 35 39 30 30
$`06.01.2011\t6.6000`
[1] 30 36 2e 30 31 2e 32 30 31 31 09 36 2e 36 30 30 30
$`07.01.2011\t6.7970`
[1] 30 37 2e 30 31 2e 32 30 31 31 09 36 2e 37 39 37 30
【问题讨论】: