从两个向量中删除相同的索引

时间:2013-11-14 14:41:33

标签: r vector dataframe indices

我在R中有两个向量,例如

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

向量a和b以我希望保存的方式排序(我将相互绘制它们)。我想从向量a中删除某些值,并删除b中相同索引处的值。例如如果我想从a:

中移除≥8的值
a <- a[a<8]

...它给出了一个没有这些值的新矢量。

现在有一种简单的方法可以从b中的相同索引中删除值(在此示例中为索引4和5)吗?也许通过使用数据框?

5 个答案:

答案 0 :(得分:3)

这样的事情:

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

你也可以使用:

keep <- which( a < 8 )

答案 1 :(得分:2)

如果向量在逻辑上是相同数据的一部分,请使用数据框。这是更好的编程实践。

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

否则,将另一个向量设置为已删除的索引:

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

答案 2 :(得分:1)

为什么不:

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

甚至:

d <- subset(d, a < 8)

答案 3 :(得分:0)

首先从b中删除索引,然后从

中删除索引
b <- b[a<8]
a <- a[a<8]

a&lt; 8返回一个向量,该向量定义哪些索引小于8.

答案 4 :(得分:0)

如果这纯粹是为了绘图,您可以使用b来避免弄乱NA和x轴。

a[a>8]<-NA

plot(b,a) #works for point or line graphs
相关问题