行中的天和列中的月融入时间序列 R
days in rows and months in columns melt into time series R
我有以下结构的时间序列数据:
dat=data.frame("Year"=rep(2005,31),
"Day"=seq(1:31),
"JANUARY"=sample(seq(1:100),31,T),
"FEBRUARY"=c(sample(seq(1:100),28),NA,NA,NA),
"MARCH"=sample(seq(1:100),31),
"APRIL"=c(sample(seq(1:100),30),NA),
"MAY"=sample(seq(1:100),31),
"JUNE"=c(sample(seq(1:100),30),NA),
"JULY"=sample(seq(1:100),31),
"AUGUST"=sample(seq(1:100),31),
"SEPTEMBER"=c(sample(seq(1:100),30),NA),
"OCTOBER"=sample(seq(1:100),31),
"NOVEMBER"=c(sample(seq(1:100),30),NA),
"DECEMBER"=sample(seq(1:100),31)
我能想到的最接近的是按天和年融化数据
melt(dat,id.vars=c("Day","Year"))
强迫约会
dat$Date<-paste(dat$Day,dat$variable,dat$Year,sep="-")
dat$Date<-as.Date(dat$Date,"%d-%B-%Y")
dat<-dat[which(is.na(pm25$Date)!=T),]
有没有更有效和不愚蠢的方法来做这些?
我采用了 Hadley 方法,使用来自 tidyr 的 gather,来自 dplyr 的 mutate,str_c 来自 stringr,as_date 来自 lubridate。它使事情进展顺利。
library('dplyr')
library('tidyr')
library('stringr')
library('lubridate')
Dates <- dat %>%
gather(Month, Value, JANUARY:DECEMBER) %>%
mutate(Date_1 = str_c(Day, Month, Year, sep = "-"),
Date_2 = as_date(Date_1, "%d-%B-%Y")) %>%
filter(!is.na(Date_2))
我有以下结构的时间序列数据:
dat=data.frame("Year"=rep(2005,31),
"Day"=seq(1:31),
"JANUARY"=sample(seq(1:100),31,T),
"FEBRUARY"=c(sample(seq(1:100),28),NA,NA,NA),
"MARCH"=sample(seq(1:100),31),
"APRIL"=c(sample(seq(1:100),30),NA),
"MAY"=sample(seq(1:100),31),
"JUNE"=c(sample(seq(1:100),30),NA),
"JULY"=sample(seq(1:100),31),
"AUGUST"=sample(seq(1:100),31),
"SEPTEMBER"=c(sample(seq(1:100),30),NA),
"OCTOBER"=sample(seq(1:100),31),
"NOVEMBER"=c(sample(seq(1:100),30),NA),
"DECEMBER"=sample(seq(1:100),31)
我能想到的最接近的是按天和年融化数据
melt(dat,id.vars=c("Day","Year"))
强迫约会
dat$Date<-paste(dat$Day,dat$variable,dat$Year,sep="-")
dat$Date<-as.Date(dat$Date,"%d-%B-%Y")
dat<-dat[which(is.na(pm25$Date)!=T),]
有没有更有效和不愚蠢的方法来做这些?
我采用了 Hadley 方法,使用来自 tidyr 的 gather,来自 dplyr 的 mutate,str_c 来自 stringr,as_date 来自 lubridate。它使事情进展顺利。
library('dplyr')
library('tidyr')
library('stringr')
library('lubridate')
Dates <- dat %>%
gather(Month, Value, JANUARY:DECEMBER) %>%
mutate(Date_1 = str_c(Day, Month, Year, sep = "-"),
Date_2 = as_date(Date_1, "%d-%B-%Y")) %>%
filter(!is.na(Date_2))