2014-12-17 1 views
0
library(lattice) 
    dd = data.frame(person = c("A", "A", "A", 
           "B", "B", "B", 
           "C", "C", "C"), 
        score = c("100", "50", "90", 
           "20", "40", "60", 
           "10", "50", "30"), 
        year = c("2001", "2002", "2003", 
          "2001", "2002", "2003", 
          "2001", "2002", "2003")) 
    >dd 
     person score year 
    1  A 100 2001 
    2  A 50 2002 
    3  A 90 2003 
    4  B 20 2001 
    5  B 40 2002 
    6  B 60 2003 
    7  C 10 2001 
    8  C 50 2002 
    9  C 30 2003 

나는 지난 몇 년 동안 사람들의 점수 분포가 어떻게 변화되었는지보고 싶어했습니다. 그리고이 정보를 표시하기 위해 상자 그림을 사용하고 싶습니다. lattice 라이브러리의 bwplot()을 사용하고 싶습니다. 시각화 및 코딩하는 데 문제가 있습니다 ... 그래서 점수를 1 축으로 만들고 싶습니다. 다른 축에서 나는 그 해를 원해. 그래서 매년 A, B, C의 사람들의 점수 분포를 그래프로 나타내려고합니다. 그래서 전체적으로 3 개의 박스 플롯이 필요합니다. 하나는 2001 년 점수, 다른 하나는 2002 년 점수, 다른 하나는 점수 점수입니다. 그러나 시도했습니다.R : bwplot()을 사용하여 데이터를 시각화하는 방법

bwplot(dd$score, groups = dd$year) 

하지만 제대로 작동하지 않았습니다.

편집 : 나는 bwplot(score ~ year, dd, horiz = F)을 시도했지만 대신 이걸 가지고 있습니다.

enter image description here

답변

2

난 당신이

dd$score <- as.numeric(as.character(dd$score)) 
bwplot(score~year, dd, horiz=FALSE) 

같은 의미 가정 (이 year 가정은 샘플 데이터에 같은 요인입니다.이 숫자라면, factor(year) 사용)

주를이 대부분의 래티스 함수는 간단한 벡터가 아닌 첫 번째 매개 변수로 수식을 기대합니다. 일반적으로 Lattice에서 다른 색상으로 groups=을 사용하는 반면 수식에 요소 변수를 제공하면 범주 별 동작이 트리거됩니다.

enter image description here

+0

감사합니다. 그러나 코드를 실행했을 때 나는 다른 플롯을 얻었습니다. 내 편집을 참조하십시오. – Adrian

+0

@Adrian Lattice의 어떤 버전이'sessionInfo()'를 실행하고 있다고 말합니까? 'F'를 재정립 했니? FALSE를 명시 적으로 사용하도록 업데이트했습니다. – MrFlick

+0

@ Adrian 나는 당신의 점수 값이 어떤 이유로 든 요인을 알아 차렸다. 당신은 이유 때문에 그들을 성격으로 통과 시켰습니까? 그들은 나에게 수치적인 것처럼 보입니다. 나는 본보기로 개종했습니다. 게시 한 샘플 데이터로 테스트 해 보셨습니까?!? – MrFlick

관련 문제