2013-11-14 76 views
2

我在R中有兩個向量,例如從兩個向量中刪除相同的索引

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

向量a和b的排列方式是我希望保存的(我會將它們彼此對齊)。我想從矢量a中刪除某些值,並刪除b中相同索引處的值。例如如果我想刪除值≥8從:

a <- a[a<8] 

...這給那些沒有值的新載體。

現在是否有一種簡單的方法去除b中相同索引的值(在本例中是索引4和5)?也許通過使用數據框?

回答

3

事情是這樣的:

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

您還可以使用:

keep <- which(a < 8) 
0

首先會從B從

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

刪除索引然後< 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

如果這純粹是爲了繪製,從而避免與b並通過使用NA x軸搞亂。

a[a>8]<-NA 

plot(b,a) #works for point or line graphs 
相關問題