重塑 table:年与月数据
Reshape table: year vs monthly data
制作数据框
a <- c(1981,11.663480,12.580290,11.728730,10.403690,8.065430,7.498169,9.858521,
10.503750,12.837550,13.322750,12.120450,13.466980)
b <- c(1982,13.250670,13.158510,13.805300,13.768520,12.035980,9.121552,11.130580,
12.353730,12.448520,12.690670,12.369690,13.099700)
Data <- as.data.frame(t(a))
Data[2,]<- t(b)
第一列是年份,其余是每个月。
我想将数据框重塑为 2 列,第一列用于日期,第二列用于值。很明显,真正的table是40年
像这样
dates value
[1] 1981/01 11.663
[2] 1981/02 12.58
我用这个来重塑:
library(reshape)
md <- melt(Data, id=(c("V1")))
现在我可以重新排序了,在数据框"md"中,年份对应的列是从1981年开始的。我尝试用cast
来提取,但是做不到。
我们可以用 paste
在具有 'V1' 列的行序列中执行 arrange
library(dplyr)
md %>%
group_by(V1) %>%
mutate(dates = sprintf('%d/%02d', V1, row_number()), value) %>%
ungroup %>%
select(-V1, -variable) %>%
arrange(dates)
制作数据框
a <- c(1981,11.663480,12.580290,11.728730,10.403690,8.065430,7.498169,9.858521,
10.503750,12.837550,13.322750,12.120450,13.466980)
b <- c(1982,13.250670,13.158510,13.805300,13.768520,12.035980,9.121552,11.130580,
12.353730,12.448520,12.690670,12.369690,13.099700)
Data <- as.data.frame(t(a))
Data[2,]<- t(b)
第一列是年份,其余是每个月。 我想将数据框重塑为 2 列,第一列用于日期,第二列用于值。很明显,真正的table是40年
像这样
dates value
[1] 1981/01 11.663
[2] 1981/02 12.58
我用这个来重塑:
library(reshape)
md <- melt(Data, id=(c("V1")))
现在我可以重新排序了,在数据框"md"中,年份对应的列是从1981年开始的。我尝试用cast
来提取,但是做不到。
我们可以用 paste
在具有 'V1' 列的行序列中执行 arrange
library(dplyr)
md %>%
group_by(V1) %>%
mutate(dates = sprintf('%d/%02d', V1, row_number()), value) %>%
ungroup %>%
select(-V1, -variable) %>%
arrange(dates)