我正在编写一个函数,在其中绘制由时间序列组成的几个不同的数据帧。 数据帧由几列组成。每个参数的第一个始终为“时间”,以下为参数。 任何数据帧都彼此不同
一旦我导入了数据集,该函数就会创建一个日历向量“时间”
Time <- as.POSIXct(TS[,1])
在for循环中,我使用函数xts()创建一个单个参数的时间序列(一对一),并使用“时间”列对时间序列进行排序。
xts(TS[,i],order.by = Time)
然后我绘图。
结果,脚本如下所示
TS <- read.table("ts.txt",header = T, dec = ".")
Time <- as.POSIXct(TS[,1])
for (i in 2:length(TS[1,])
{
p <- plot(xts(TS[,i],order.by = Time)
print(p)
}
当数据帧中的向量时间格式不是yyyy-mm-dd时,as.POSIXct()
出现问题。这里有几个例子:
在某些数据帧中,在“时间”中,我只有“ yyyy”,其中由于数据原因将“ mm-dd”粘贴到“ yyyy”没有任何意义(在这种情况下,列为月份)。
在其他情况下,我也有否定日期,因为它们是BC。
我还可以使用其他功能(例如我的格式)来创建适合xts()
的日历日期吗?
这是我遇到问题的三个数据集示例:
#1
year <- c(seq(1900, 2000, by = 10))
Jan <- c(rnorm(length(year), mean = 1, 5))
Feb <- c(rnorm(length(year), mean = 6, 9))
TS <- as.data.frame(cbind(year,Jan,Feb))
str(TS)
#2
year <- c(seq(-500, 2000, by = 100))
Jan <- c(rnorm(length(year), mean = 1, 5))
Feb <- c(rnorm(length(year), mean = 6, 9))
TS <- as.data.frame(cbind(year,Jan,Feb))
str(TS)
#3
time <- c("-100/01/01", "-100/06/01", "0/01/01", "1400/01/01", "2000/01/01")
people <- abs(c(rnorm(length(time), mean = 6, 9)))
TS <- as.data.frame(cbind(time,people))
str(TS)