2011-10-06 18 views
3

我有一個數據框,其中的行對應於參數置信區間的上限和下限。如果有n行,則有n個變量。有兩列,一個置信度區間下限爲「下限」,另一個爲「上限」。行名稱對應於變量名稱。這樣在R中顯示幾個置信區間

 lower upper 
y1  7.923 9.22 
y2  7.105 8.74 
y3  8.185 9.54 
y4  8.157 9.51 

東西,我想創建一個情節,以顯示這些置信區間爲巴,優選每端法蘭。

如果有人能告訴我一個很好的方法來做到這一點,我將不勝感激!

感謝 PS

回答

0

最後,我對ggplot有一個很好的解決方案。感謝以上回應

p1 <- ggplot(cidf) + 

geom_errorbar(aes(x = row.names(ciddf), ymin = lower, ymax = upper), width = 0.2) + 

xlab("Variables") + 

coord_flip() + opts(title = "Confidence intervals for Variables") 

p1 
6

latticebwplot使箱須圖:

library(lattice) 
bwplot(lower+upper~var, data=dat) 

?bwplot?lattice瞭解更多詳情。

enter image description here


在一般情況下,你可以通過讓繪圖功能總結爲DAT使用R的全部功能。例如:

dat <- data.frame(
    var <- sample(paste("y", 1:4, sep=""), 100, replace=TRUE), 
    val <- rnorm(100) 
) 

plot(val~factor(var), data=dat, col="cyan") 

enter image description here

+0

謝謝!上面的第一塊情節看起來像我想要的,但我無法使它工作。示例代碼中的「var」是什麼:bwplot(lower + upper_var,data = dat) ? –

+0

@P Sellaz'var'是一個構造來表示數據來自何處(來自y1,y2,y3,y4)的因子。在你的情況下,這將是行名。 –

+0

對不起,我仍然遇到問題。 bwplot(lower + upper_y1,data = cidf) eval(expr,envir,enclos)中的錯誤:未找到對象'y1' –

2

這裏是習慣ggplot2溶液。有幾種其他geoms可用於這種情節。例如嘗試更換爲geom_crossbar。欲瞭解更多詳情,請訪問​​

cidf = data.frame(
    var = c('y1', 'y2', 'y3', 'y4'), 
    lower = c(7.923, 7.105, 8.185, 8.157), 
    upper = c(9.22, 8.74, 9.54, 9.51) 
) 

require(ggplot2) 
p1 <- ggplot(cidf) + 
    geom_errorbar(aes(x = var, ymin = lower, ymax = upper), width = 0.2) 
+0

謝謝。這聽起來很有希望,但根據我對其他答案的評論,我不知道代碼中的「var」代表什麼。例如,我有一個名爲cidf的數據框,它具有「lower」和「upper」列,每行都是我想要顯示的時間間隔。再次感謝。 –

+0

看看我更新的答案。 – Ramnath

+0

啊,現在明白了。謝謝 !所以我需要在數據框中添加另一列 - 基本上是將行名轉換爲因子,就像上面羅馬Luštrik所說的那樣。對不起,有點慢! –

0

我設法找到與內置的箱線圖命令來做到這一點的方法之一。我雖然對數據幀改變爲矩陣:

ci <- as.matrix(cidf) 
boxplot(ci[1,],ci[2,],ci[3,],ci[4,]) 

我還是很想知道一個更好的方式來做到這一點在ggplotbwplot,或任何其他相關意見。

PS