【发布时间】:2011-03-02 19:21:18
【问题描述】:
我的数据如下所示:
> head(data)
groupname ob_time dist.mean dist.sd dur.mean dur.sd ct.mean ct.sd
1 rowA 0.3 61.67500 39.76515 43.67500 26.35027 8.666667 11.29226
2 rowA 60.0 45.49167 38.30301 37.58333 27.98207 8.750000 12.46176
3 rowA 120.0 50.22500 35.89708 40.40000 24.93399 8.000000 10.23363
4 rowA 180.0 54.05000 41.43919 37.98333 28.03562 8.750000 11.97061
5 rowA 240.0 51.97500 41.75498 35.60000 25.68243 28.583333 46.14692
6 rowA 300.0 45.50833 43.10160 32.20833 27.37990 12.833333 14.21800
每个组名都是一个数据系列。由于我想分别绘制每个系列,因此我将它们分开如下:
> A <- zoo(data[which(groupname=='rowA'),3:8],data[which(groupname=='rowA'),2])
> B <- zoo(data[which(groupname=='rowB'),3:8],data[which(groupname=='rowB'),2])
> C <- zoo(data[which(groupname=='rowC'),3:8],data[which(groupname=='rowC'),2])
预计到达时间:
Thanks to gd047: Now I'm using this:
z <- dlply(data,.(groupname),function(x) zoo(x[,3:8],x[,2]))
生成的动物园对象如下所示:
> head(z$rowA)
dist.mean dist.sd dur.mean dur.sd ct.mean ct.sd
0.3 61.67500 39.76515 43.67500 26.35027 8.666667 11.29226
60 45.49167 38.30301 37.58333 27.98207 8.750000 12.46176
120 50.22500 35.89708 40.40000 24.93399 8.000000 10.23363
180 54.05000 41.43919 37.98333 28.03562 8.750000 11.97061
240 51.97500 41.75498 35.60000 25.68243 28.583333 46.14692
300 45.50833 43.10160 32.20833 27.37990 12.833333 14.21800
因此,如果我想根据时间绘制 dist.mean 并为每个系列包含等于 +/- dist.sd 的误差线:
- 如何组合 A、B、C dist.mean 和 dist.sd?
- 如何制作条形图,或者更好,结果对象的折线图?
【问题讨论】:
-
您是出于某种原因坚持使用
zoo,还是只想使用任何可用的工具进行绘图? -
@Aniko:我并不特别热衷于任何事情。我目前正在使用
zoo,因为那是我的阅读引导我的地方。 -
关于您的第一个问题,这有帮助吗?图书馆(plyr); zoo.obj
-
@gd047:效果很好!但是把它放在一个答案中,这样我就可以给分了。
标签: r plot time-series zoo