过滤R中的数据帧

Dav*_*d B 0 r filter dataframe

我有以下数据帧(df)

 start     end
1    14379   32094
2   151884  174367
3   438422  449382
4   618123  621256
5   698271  714321
6   973394  975857
7   980508  982372
8   994539  994661
9  1055151 1058824
.   .       .
.   .       .
.   .       .
Run Code Online (Sandbox Code Playgroud)

还有一个带有布尔值(vec)的长布尔向量.

我想过滤掉df其中包含TRUE相应位置中至少一个值的所有范围vec.

换句话说,start=x end=yiff将输出一行!any(vec[x:y]).

有关如何实现这一目标的任何想法?

Jos*_*ich 5

这是一个相同的问题: 在R中的数据框中添加一个列, 所以它有相同的答案...使用apply,但any代替mean...

> ranges <- apply(DF,1,function(row) !any(vec[ row[1]:row[2] ]))
> DF[ranges,]
Run Code Online (Sandbox Code Playgroud)