将数据帧转换为年度时间序列

时间:2019-05-20 20:05:39

标签: r

我有一个名为DF12的数据框,这是它的标题:

 Year     VegC    LittC   SoilfC   SoilsC    Total
1 1850 7891.951 4709.804 15046.59 6967.480 34615.88
2 1851 7830.10 4770.95 15035.07 6967.277 34603.48
3 1852 7952.874 4805.29 15027.78 6967.156 34753.00
4 1853 8009.70 4831.233 15020.9 6967.011 34828.91
5 1854 8136.779 4869.645 15013.38 6966.881 34986.7
6 1855 7982.63 4976.534 15013.52 6966.839 34939.5

我想将此数据帧创建为时间序列,并分别绘制变量,例如VegC和Total。我试图运行以下代码将数据帧转换为时间序列:

myts <- ts(DF12, start=c(1850, 1), end=c(1950, 12), frequency=12)

但是我不能分别绘制不同的变量。

想知道不涉及ggplot2的解决方案。

1 个答案:

答案 0 :(得分:0)

转换为动物园,然后转换为plotnc=1参数是可选的。

library(zoo)
z <- read.zoo(DF12)
plot(z, nc = 1) # multiple panels

或缩放为一个面板:

plot(scale(z), screens = 1, col = 1:5)
legend("top", names(z), lty = 1, col = 1:5, cex = 0.75)

以上使用经典图形。对于点阵图形:

library(lattice)
xyplot(z)

对于ggplot2:

library(ggplot2)
autoplot(z) + facet_free()

如果您需要一个ts对象,那么请tt <- as.ts(z)并使用plot(tt)进行绘制。

注意

可复制形式的输入:

Lines <- " Year     VegC    LittC   SoilfC   SoilsC    Total
1 1850 7891.951 4709.804 15046.59 6967.480 34615.88
2 1851 7830.10 4770.95 15035.07 6967.277 34603.48
3 1852 7952.874 4805.29 15027.78 6967.156 34753.00
4 1853 8009.70 4831.233 15020.9 6967.011 34828.91
5 1854 8136.779 4869.645 15013.38 6966.881 34986.7
6 1855 7982.63 4976.534 15013.52 6966.839 34939.5"
DF12 <- read.table(text = Lines)