2013-11-14 37 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 
相关问题