这个问题在这里已有答案:
数据
DF1
col1
1 a
2 a
3 b
4 e
DF2
col1 col2
1 1 a
2 1 c
3 1 c
4 1 e
5 2 a
6 2 b
7 2 b
8 2 e
9 3 a
10 3 a
11 3 b
12 3 e
我想用df1过滤df2 . 到目前为止,我有这个代码 .
filter(df2, any(col2==df1$col1[1]))
这允许我逐行过滤 . 但我想过滤多行 . 不是整个df1 . 我想使用df1 $ col1 [1:2]过滤df2 . 所以“a”后跟“a” . 我尝试了以下代码但得到了这条消息 .
filter(df2, col2==df1$col1[1] & col2==df1$col1[2])
[1] col1 col2 <0行>(或0长度row.names)
理想输出:
DF2
col1 col2
1 3 a
2 3 a
3 3 b
4 3 e
2 回答
你可以使用包
Biostrings
.使用与@jaySf的答案相同的方法,您也可以使用
gregexpr
.或
stri_locate
来自stringi
.