2014-09-06 1 views
0

다른 벡터에서 만족되는 조건에 따라 한 변수의 요소 벡터를 얻으려면 어떻게해야합니까? 저는 인구의 세그먼트를 그래프로 나타낼 수 있도록 이것을하고 있습니다.변수 B를 기반으로 변수 A의 벡터 선택

내 시도는 NULL (빈) 벡터의 결과로, 작동하지 않았다 :

a <- c(1,2,3,4,3,3,3,4,1,3,2,3) # Conditional values 
b <- c(1,2,3,4,5,6,7,8,9,10,11,12) # Target values 
df <- data.frame(a,b) 

scissor <- function(x,n) { 
    for (i in 1:12) { 
    if (x[i,1] != n) { 
     x[-i,] # Remove row that does not have value n 
    } 
    } 
} 

vector <- scissor(df,3) 
+0

'a [a == b]'또는'b [b == a]'와 같은 뜻입니까? 원하는 결과를 게시하십시오. –

+0

벡터에서 b의 값 (3,5,6,7,10,12)을 포함하도록 b의 모든 값을 제거하려면 (a! = 3)을 원합니다. 나는 결과를 얻기 위해 더하기와 제거에 대해 신경 쓰지 않고, 다른 변수의 조건을 기반으로 특정 값을 추출하는 것이 가장 좋습니다. – SocraticDatum

답변

0

당신은 당신이 무슨 일을하는지에 대한 이중 부정을해야합니다.

> b[!(a != 3)] 
#[1] 3 5 6 7 10 12 

하지만 당신은 단지 데이터 프레임으로 동일한 결과

> b[a == 3] 
#[1] 3 5 6 7 10 12 

이 작업을 수행 할 수 있습니다, 그것은 단지 b

> df$b[df$a == 3] 
#[1] 3 5 6 7 10 12 

> df[df$a == 3, ] 
# a b 
#3 3 3 
#5 3 5 
#6 3 6 
#7 3 7 
#10 3 10 
#12 3 12 
것 데이터 프레임에 대해서는

입니다.

+0

예! 감사. 실제로 : df [df $ b == 3] – SocraticDatum