filter / subset / delete包含R中字符串中间字符的行

时间:2018-04-20 03:56:26

标签: r

我有一个包含肽序列的数据框,我想只保留其字符串中没有内部“R”或“K”的行。

{{1}}

作为输出,我想只保留第一行(即“ABCOIIJUHFSAUJHR”)。

我尝试过使用stringr包中的filter(dplyr)和str_locate_all以及长度,但无法弄明白。

非常感谢任何帮助。

由于 萌

2 个答案:

答案 0 :(得分:5)

我们可以跳过第一个和最后一个字符(^..$)并匹配{{1}中不是R或K([^RK]*)的零个或多个字符并使用它来对数据集进行子集化

grep

答案 1 :(得分:3)

以下是dplyr解决方案:str_locate是等同于grepl的整数,因此代码如下所示:

df2 <- df1 %>%
  filter(Peptide %>% str_detect("^.[^RK]*.$"))