Я пишу функцию, в которой я строю несколько разных фреймов данных, составленных из временных рядов.Кадры данных состоят из нескольких столбцов.Первый из них всегда "время", а следующие параметры.Любой фрейм данных отличается друг от друга
После того, как я импортировал набор данных, функция создания календарного вектора «Время»
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)
}
У меня проблемы с as.POSIXct()
, когда формат моего векторного времени в кадрах данных не равен гггг-мм-дд.Вот несколько примеров:
В некоторых фреймах данных во «времени» у меня есть только «гггг», в котором вставка «мм-дд» в «гггг» не имеет никакого смысла из-за данных (в данном случае столбцы - это месяцы).
В других ситуациях у меня также есть отрицательные даты, потому что они являются 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)