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]).
有关如何实现这一目标的任何想法?
这是一个相同的问题:
在R中的数据框中添加一个列,
所以它有相同的答案...使用apply,但any代替mean...
> ranges <- apply(DF,1,function(row) !any(vec[ row[1]:row[2] ]))
> DF[ranges,]
Run Code Online (Sandbox Code Playgroud)