我有一個看起來像這樣的數據:使用R.zoo繪製錯誤吧多個系列
> 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])
ETA:
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 2010-06-11 18:57:58
@Aniko:我不特別喜歡任何東西。目前我正在使用'動物園',因爲那是我讀書引導我的地方。 – dnagirl 2010-06-11 19:00:31
關於你的第一個問題,這有幫助嗎?庫(plyr); zoo.obj < - dlply(data,。(groupname),function(x)zoo(x [,3:8],x [,2])) – 2010-06-11 19:18:29