2014-09-25 9 views
1

R의 대부분이 데이터를 올바른 형식으로 가져오고 있으며 두 개의 패널 격자 격자를 각각 세 개의 두 그룹으로 만드는 데 어려움을 겪고 있습니다. 궁극적으로 저는 Lower95에서 Upper95까지 라인을 보여주는 일련의 단순화 된 상자 냄비를 보여주고 싶습니다. 각 마약과 테스트를 위해 Center를위한 포인트와 6 개의 라인을 가진 두 개의 패널 (Sen & Spec)이 있습니다. 그 안에있는 점들).격자 및 R을 사용하는 여러 요소가 포함 된 누적 선

내 단순화 된 데이터가이

df2 <- data.frame (
    Center = c(0.94, 0.97, 0.95, 0.97, 1, 0.94,   1, 0.99, 0.96, 0.98, 0.98, 0.99), 
    Lower95 =c(0.91, 0.95, 0.93, 0.95, 0.98, 0.91,   0.98, 0.96, 0.92, 0.96, 0.95, 0.96), 
    Upper95 =c(0.96, 0.98, 0.97, 0.98, 1, 0.96,   1, 1, 0.98, 0.99, 0.99, 1 ), 
    Y  = c(1,2,3,4,5,6,1,2,3,4,5,6), 
    Drug=c("INH","INH","INH","RIF","RIF","RIF","INH","INH","INH","RIF","RIF","RIF"), 
    Test=c("LPA","MODS","PSQ","LPA","MODS","PSQ","LPA","MODS","PSQ","LPA","MODS","PSQ"), 
    Measure=c("Sen","Sen","Sen","Sen","Sen","Sen","Spec","Spec","Spec","Spec","Spec","Spec") 
    ) 

    attach(df2) 
    xyplot(Y~Lower95+Upper95|Measure, df=df2, type="o") 

처럼 보이는 것은 그래서이 이미지를 출력하고, 몇 가지 문제가 있습니다 - Original :

  1. 내가 시도하는 '더미'변수로 Y를 사용하고는 동일한 패널에서 3 개의 테스트로 구성된 두 그룹을 얻으려고했지만 의도 한대로 작동하지 않았습니다. 각 패널에 세 개의 테스트 두 그룹이 있습니다 (단 # 2 참조)
  2. 플롯은 세 가지 테스트의 세 가지 포인트를 연결합니다 (Lower95 및 Upper95의 두 포인트가 아님).
  3. 내가 데이터를 바꿀 실패 시도했습니다 Desired Chart

    , 몇 - 차트 (들) 여기

에 점으로 센터를 얻을 것은 내가 (GIMP 내 해킹) 욕망 같은 것입니다 xyplot 내의 다른 것들 (예 : 다른 요인/그룹) 그러나 나는 그것을 원하는 방식으로 작동시키지 못합니다.

도움 주셔서 감사합니다.

+1

당신의 질문에 직접적으로 관련이 없지만 유용하다 :'attach()'를 피하라. 여기에 이유가 없으며'detach()'를 잊어 버리면 검색 경로에 변수 이름 검색이 엉망이 될 수있다. . – MrFlick

+0

좋은 조언! 감사 ! – user918967

답변

1

그리는 대상은 lattice 점 그래프와 가장 유사합니다. 표준 lattice은 오류 막대에 적합하지 않지만 Hmisc 라이브러리는 해당 기능을 lattice에 잘 추가합니다. 당신은 또한 왼쪽

library(latticeExtra) 
useOuterStrips(Dotplot(Test~Cbind(Center,Lower95,Upper95)|Measure+Drug, df2)) 

에 약물 라벨을 이동 latticeExtra를 포함 할 수 있습니다 단계 더 가고 싶어한다면 당신은

library(lattice) 
library(Hmisc) 
Dotplot(Test~Cbind(Center,Lower95,Upper95)|Measure+Drug, df2) 

enter image description here

을 얻기 위해 할 수있는 결과는

enter image description here

+0

이것은 위대한 MrFlick입니다! 선의 색상을 파란색에서 검정색으로 변경하려면 어떻게해야합니까? 이 코드는 점이 빨간색으로 바뀌지 만 선은 검은 색으로 표시합니다. UseOuterStrips (Dotplot (Test, Cad, Center95, Lower95, Upper95) | Measure + Drug, df2, col = "red")) 감사합니다! – user918967

+0

다음과 같이 표준 격자 par.settings로 둘 다 설정할 수 있습니다 :'useOuterStrips (Dotplot (Test | Cbind (Center, Lower95, Upper95) | Measure + Drug, df2, par.settings = list (dot.symbol = list "red"), plot.line = list (col = "black"))))'' – MrFlick