首页 > 解决方案 > 基于平行向量的滤波向量

问题描述

假设我有两个向量:

x = c(1,2,3,4,5,6,7,8,9,10)
y = c(1,2,3,1,2,3,1,2,3,2)

我想生成一个新列表,其中包含 x 的所有元素,以便 y 中的相应元素满足条件。例如,假设我想要 x 中的所有元素,用 x[i] 表示,这样 y[i], = 2。所以在这种情况下,我希望新列表是 x' = [2,5,8,10]。

很明显如何通过蛮力慢慢地做到这一点,但我想知道在 R 中是否有一种快速和/或语法简洁的方法。

谢谢!

标签: rlistvector

解决方案


x <- c(1,2,3,4,5,6,7,8,9,10)
y <- c(1,2,3,1,2,3,1,2,3,2)

z <- x[y == 2]
z
# [1]  2  5  8 10

推荐阅读