2015-10-04 62 views
2

我正在形象化比值比。點繪製不同的指標,取決於值,在R

你可以找到假數據及以下

Data <- data.frame(
odds = sample(0:9), 
pvalue = c(0.1,0.04,0.02,0.03,0.2,0.5,0.03, 
0.12,0.12,0.014), 
Y = sample(c("a", "b"), 5, replace = TRUE), 
letters = letters[1:10] 
) 
library(lattice) 
dotplot(letters ~ odds| Y, data =Data, 
aspect=0.5, layout = c(1,2), ylab=NULL) 

一個情節,我想顯示的p值大於0.05,和空圈實心圓,如果值小於0.05。

+0

你也可以考慮繪製您的ORs的置信區間a找一個x = 1的垂直線。 – Heroka

+0

你說得對。這是個好主意,但我不知道如何去做。我有優勢比的標準錯誤,但不知道如何增加水平置信區間。你有什麼建議嗎? –

回答

1

我們可以根據'pvalue'列爲空/實心圓指定值爲1/20的pch

dotplot(letters ~ odds| Y, data=Data, aspect= 0.5, layout= c(1,2), 
      ylab=NULL, pch= ifelse(Data$pvalue > 0.05, 20, 1)) 
+0

謝謝,這是我需要的。 –

+0

@AnnikaMagnusson感謝您的反饋。如果有效,請考慮通過點擊投票旁邊的勾號來接受最佳解決方案。 – akrun

0

這是很容易與ggplot2創建:

library(ggplot2) 
Data$significant <- Data$pvalue > 0.05 
ggplot(Data, aes(x=odds, y=letters, shape=significant)) + 
     geom_point(size=4) + 
    scale_x_continuous(breaks = seq(from=0, to= 8, by=2)) + 
    scale_shape_manual(values=c(1, 16)) + 
    ylab("") + 
    facet_wrap(~ Y, ncol = 1, nrow = 2) + 
    theme_bw() 

GGPlot version

+0

謝謝,它看起來非常好的出版物。如果我有優勢比的標準錯誤,你知道如何增加水平置信區間嗎? –

+0

是否可以刪除面板中沒有值的字母?例如,我在組一, –

1

group參數連同pch也應該做的工作:

dotplot(letters ~ odds| Y, data =Data, 
     aspect=0.5, layout = c(1,2), ylab=NULL, 
     groups = pvalue <= 0.05, 
     pch = c(19, 21)) 
+0

謝謝,這是非常實際的答案! –