2013-02-14 1 views
0

서브 세트 상태 데이터 프레임입니다. 나는 열 subregion에 "침을"가지고있는 행을 원한다. 그러나 그것은 나에게 모든 NA를 준다. 내가 어디로 잘못 가고 있니?대괄호 서브 세트는 NAs를 제공합니다

나는 결국이

states$code[states$subregion=="spit"]="Priority1" 

예제 코드처럼 다른 열을 추가하려면 :

states=map_data("state") 
states[states$subregion=="spit",] 
# long lat group order region subregion 
# NA  NA NA NA NA <NA>  <NA> 
# NA.1 NA NA NA NA <NA>  <NA> 
# NA.2 NA NA NA NA <NA>  <NA> 
# NA.3 NA NA NA NA <NA>  <NA> 
# NA.4 NA NA NA NA <NA>  <NA> 
# NA.5 NA NA NA NA <NA>  <NA> 

그러나 이것은 올바른 결과 states[states$region=="north carolina",]

답변

2

나에게주는 states의 구조를 살펴보고 특히 NA 값이 subregion에 있음에 유의하십시오. 위와 같이 대괄호를 사용하여 서브 세트를 구성한 경우 NA이고 서브 세트에는이 포함됩니다. 작은 예 :

foo <- states[states$subregion=="spit",] 
foo[!is.na(foo$subregion),] 

#   long  lat group order   region subregion 
# 10321 -76.00285 36.55471 40 10321 north carolina  spit 
# 10322 -75.93983 36.55471 40 10322 north carolina  spit 
# 10323 -75.92837 36.54898 40 10323 north carolina  spit 
# 10324 -75.91691 36.52606 40 10324 north carolina  spit 
# 10325 -75.91118 36.50887 40 10325 north carolina  spit 
# 10326 -75.91118 36.49168 40 10326 north carolina  spit 
# 10327 -75.93983 36.49168 40 10327 north carolina  spit 
# 10328 -75.96848 36.49741 40 10328 north carolina  spit 
# 10329 -75.97421 36.50314 40 10329 north carolina  spit 
# 10330 -75.97421 36.52606 40 10330 north carolina  spit 
# 10331 -75.98566 36.55471 40 10331 north carolina  spit 
# 10332 -76.00285 36.55471 40 10332 north carolina  spit 

또는 한 줄 : 비슷한 na.omit 또는 무언가를 사용하는 경우

dat <- data.frame(x=1:10, y=c('a', 'b'), z='foo') 
dat$y[9:10] <- NA 

dat[dat$y == 'a',] 

     x y z 
1  1 a foo 
3  3 a foo 
5  5 a foo 
7  7 a foo 
NA NA <NA> <NA> 
NA.1 NA <NA> <NA> 

, 당신은 당신이 기대하는 결과를 볼 수 있습니다

states[states$subregion == 'spit' & !is.na(states$subregion),] 
+0

죄송합니다, 고마워 ... 그게 내가 의미했던거야! – Justin

+0

'긴 위도 그룹 주문 지역은 매사 추세 츠 내가이 경우 같은 것을 얻고 버몬트 ' '13460 -73.41881 44.13494 52 13460을 main'' '6081 조지아 -70.10712 42.02073 (21) 6081 '2391 -81.29125 31.41528 10 2391을 subregion' 나는 na.omit –

+0

을 사용하는데 내 문제를 해결하지 못했습니다. –