基于并行向量的过滤向量

时间:2019-01-31 15:49:55

标签: r list vector

假设我有两个向量:

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中是否有一种快速和/或语法简洁的方法来实现此功能。

谢谢!

1 个答案:

答案 0 :(得分:2)

with i as (
      select creationdate as dte, 1 as inc
      from issues
      union all
      select completiondate, -1 as inc
      from issues
     )
select dte, sum(sum(inc)) over (order by dte)
from t
group by dte
order by dte;