Я хотел бы определить, если колонка строки в кадре данных ниже повторяет буквы «V» или «G» не менее 5 раз в течение первых 20 символов строка.Определить непрерывное растяжение определенных букв в строке с использованием R
Образец данных:
data = data.frame(class = c('a','b','C'), string =
c("ASADSASAVVVVGVGGGSDASSSDDDFGDFGHFGHFGGGGGDDFFDDFGDFGTYJ",
"AWEERTGVTHRGEFGDFSDFSGGGGGGDAWSDFAASDADAADWERWEQWD",
"GRTVVGGVVVGGSWERGERVGEGDDFASDGGVQWEQWEQWERERYRYER"))
Например строка в первой строке имеет «VVVVG» в течение первых 20 позиций символов. Точно так же строка в третьей строке имеет «VVGGV».
data
# class string
#1 a ASADSASAVVVVGVGGGSDASSSDDDFGDFGHFGHFGGGGGDDFFDDFGDFGTYJ
#2 b AWEERTGVTHRGEFGDFSDFSGGGGGGDAWSDFAASDADAADWERWEQWD
#3 C GRTVVGGVVVGGSWERGERVGEGDDFASDGGVQWEQWEQWERERYRYER
Желательный результат должен выглядеть следующим образом:
# class string result
# 1 a ASADSASAVVVVGVGGGSDASSSDDDFGDFGHFGHFGGGGGDDFFDDFGDFGTYJ TRUE
# 2 b AWEERTGVTHRGEFGDFSDFSGGGGGGDAWSDFAASDADAADWERWEQWD FALSE
# 3 C GRTVVGGVVVGGSWERGERVGEGDDFASDGGVQWEQWEQWERERYRYER TRUE
Авось '$ результате данных <- grepl ('(V | G) {5,}', зиЬзЬг (данные $ строка, 1,20))' – akrun
Спасибо @akrun, он отлично работает –
Что делать, если есть только 'VVVVV', а не« G »в первых 20 символах – akrun