使用as.POSIXct()或类似格式的不同日期格式

时间:2018-11-21 08:31:18

标签: r xts

我正在编写一个函数,在其中绘制由时间序列组成的几个不同的数据帧。 数据帧由几列组成。每个参数的第一个始终为“时间”,以下为参数。 任何数据帧都彼此不同

一旦我导入了数据集,该函数就会创建一个日历向量“时间”

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)

0 个答案:

没有答案