2013-10-21 2 views
1

사용자,플롯에서 빈 요소 레벨을 피하는 방법은 무엇입니까?

나는이 데이터 프레임이 있습니다

A<- c(10,2,4,5,3,5,98,65,36,65,6,100,70,54,25,23,22,30,15,23) 
B<- c(1,0.1,0.5,0.8,0.2,0.9,3,1.2,5.6,3.5,15.9,10.2,5,5.1,7.1,5,6,10,4,8) 
C<- c("a","a","a","a","a","a","b","b","b","b","c","c","c","c","d","d","d","d","d","d") 
mydf<- data.frame(A,B,C) 

을하고 난 단지 수준 "A"를 유지 하위 집합을했다.

subset<- subset(mydf, mydf$C=="a") 

그러나 플롯을 만들 때 (그래프 참조) 그래프에 삭제 된 레벨도 표시됩니다.

plot(B~ C, data=subset) 

삭제 된 레벨을 피하면서 서브 세트 된 데이터 프레임을 플로팅하려면 어떻게해야합니까?

plot subset data

감사합니다!

답변

3
str(subset) 
#'data.frame': 6 obs. of 3 variables: 
# $ A: num 10 2 4 5 3 5 
# $ B: num 1 0.1 0.5 0.8 0.2 0.9 
# $ C: Factor w/ 4 levels "a","b","c","d": 1 1 1 1 1 1 

factor에 의해 누락 된 요인 수준을 제거

subset$C <- factor(subset$C) 

str(subset) 
#'data.frame': 6 obs. of 3 variables: 
#$ A: num 10 2 4 5 3 5 
#$ B: num 1 0.1 0.5 0.8 0.2 0.9 
#$ C: Factor w/ 1 level "a": 1 1 1 1 1 1 
+0

정말 고마워요! JT85 감사합니다. – FraNut

1

그냥 수행

plot(B~ droplevels(C), data=subset) 
2

사용 droplevels :

subset$C <- droplevels(subset$C) 
plot(B~ C, data=subset) 

을 그건 그렇고, subset는 data.frame을위한 좋은 이름이 아닙니다.

+0

가 나는 부분 집합의 이름을 변경을 원하지만 답변을 빨리 내 편집 한 후 온, 동의합니다. Jilber – FraNut

관련 문제