2012-02-01 3 views
4

나는 이것을 원한다. 여기에 몇 가지 예제 코드입니다 :그룹화 요소에 누락 값이있는 경우베이스 R의 boxplot에 'NA'가 표시 될 수 있습니까?</p> <p><img src="https://i.stack.imgur.com/xr0S0.png" alt="a boxplot with NA as a category name"></p> <p>을 그리고 <code>na.action=na.pass</code>을 전달하는 NA가 에 그룹화 이름을 표시 할 것입니다 상자 그림을 생각 :

#Build a fake dataset 
set.seed(212012) 
nn = 100 
sample_data <- data.frame(score = c(rpois(nn, 1), rpois(nn, 2), 
             rpois(nn, 1.5), rpois(nn, 3)), 
          category = c(rep(0, nn), rep(1, nn), 
             rep(2, nn), rep(NA, nn))) 

boxplot(score ~ category, data=sample_data, na.action=na.pass) 

는하지만이 생성합니다

enter image description here

'간단한'방법은 내가 원하는 것은 다음과 같은 코드이지만 탐색 적 데이터 분석을위한 좋은 아니다하려면 :

sample_data$category2 <- sample_data$category 
sample_data$category2[ is.na(sample_data$category) ] <- 'NA' 
boxplot(score ~ category2, data=sample_data) 

R 전문가의 힌트가 있습니까? 나는 na.pass를 this more general discussion에서 찾을 수 있었고 na.pass의 출처는 Prof. Ripley here에서 찾을 수있었습니다. 그러나 요인에 의해 분할 될 데이터에 나타나는 누락 된 데이터 (NA)와 요인 자체의 누락 된 데이터 사이에는 구별이없는 것처럼 보입니다. 나는 간단한 것을 놓치고 있는가, 아니면 더 많은 기능 요청인가?

답변

7

boxplot(score ~ factor(category,exclude=NULL), data=sample_data)

기본 요소의 동작은 exclude=NA입니다. 나는 그 내부의 호출이 boxplot 호출이라고 가정한다. 이것은 단지 여러분의 NA 값을 포함하도록 인수 분해를 강제하는 것입니다.

+0

또한 정확히 수행하는'addNA'를 참조하십시오. – James

+0

사실! 'boxplot (score ~ ​​addNA (category), data = sample_data)'내부적으로'addNA'는'exclude = NULL'을 사용하여'factor'를 호출합니다. – Justin

+0

'boxplot (score ~ ​​addNA (category), data = sample_data)' 조금 짧아. 감사합니다 저스틴 & 제임스! –