我有一个包含肽序列的数据框,我想只保留其字符串中没有内部“R”或“K”的行。
{{1}}
作为输出,我想只保留第一行(即“ABCOIIJUHFSAUJHR”)。
我尝试过使用stringr包中的filter(dplyr)和str_locate_all以及长度,但无法弄明白。
非常感谢任何帮助。
由于 萌
答案 0 :(得分:5)
我们可以跳过第一个和最后一个字符(^.
,.$
)并匹配{{1}中不是R或K([^RK]*
)的零个或多个字符并使用它来对数据集进行子集化
grep
答案 1 :(得分:3)
以下是dplyr
解决方案:str_locate
是等同于grepl
的整数,因此代码如下所示:
df2 <- df1 %>%
filter(Peptide %>% str_detect("^.[^RK]*.$"))