2013-11-14 2 views
2

저는 R에 두 개의 벡터가 있습니다.두 벡터에서 동일한 색인을 제거하십시오.

a <- c(2,6,4,9,8) 
b <- c(8,9,4,2,1) 

벡터 a와 b는 내가 보존하고자하는 방식으로 정렬됩니다 (나는 서로 대립하게 될 것입니다). 벡터에서 특정 값을 제거하고 b의 동일한 인덱스에서 값을 제거하려고합니다. 예 :

a <- a[a<8] 

...이 값이없는 새 벡터를 제공합니다.

b의 동일한 인덱스 (이 예제에서는 인덱스 4와 5)에서 값을 쉽게 제거 할 수 있습니까? 아마도 데이터 프레임을 사용하여? 이 같은

답변

3

뭔가 :

keep <- a < 8 
a <- a[keep] 
b <- b[keep] 

당신은 또한 사용할 수 있습니다

keep <- which(a < 8) 
0

첫 번째는이 벡터

b <- b[a<8] 
a <- a[a<8] 

에서 다음에 b에서 < 8 반환 인덱스를 제거하는 어떤 인덱스가 8보다 작은지를 정의합니다.

1

왜 :

d <- data.frame(a=a, b=b) 
d <- d[d$a < 8, ] 

심지어 :

d <- subset(d, a < 8) 
2

는 벡터가 동일한 데이터의 논리적 부분이 있다면, 데이터 프레임을 사용합니다. 더 나은 프로그래밍 실습입니다.

df <- data.frame(a = a, b = b) 
df <- df[df$a < 8, ] 

그렇지 않으면 인덱스를 제거 할 또 다른 벡터를 설정합니다

keep <- a < 8 
a <- a[keep] 
b <- b[keep] 
0

을이, 당신은 bNA를 사용하여 x 축과 장난 피할 수 플로팅 순전히 경우.

a[a>8]<-NA 

plot(b,a) #works for point or line graphs