我在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)吗?也许通过使用数据框?
答案 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