Tôi muốn xác định xem cột chuỗi trong khung dữ liệu dưới đây lặp lại các chữ "V" hoặc "G" ít nhất 5 lần trong 20 ký tự đầu tiên của chuỗi.Xác định chuỗi chữ cụ thể liên tục trong chuỗi bằng cách sử dụng R
mẫu dữ liệu:
data = data.frame(class = c('a','b','C'), string =
c("ASADSASAVVVVGVGGGSDASSSDDDFGDFGHFGHFGGGGGDDFFDDFGDFGTYJ",
"AWEERTGVTHRGEFGDFSDFSGGGGGGDAWSDFAASDADAADWERWEQWD",
"GRTVVGGVVVGGSWERGERVGEGDDFASDGGVQWEQWEQWERERYRYER"))
Ví dụ chuỗi trong hàng đầu tiên có "VVVVG" trong vòng 20 vị trí ký tự đầu tiên. Tương tự, chuỗi trong hàng thứ ba có "VVGGV".
data
# class string
#1 a ASADSASAVVVVGVGGGSDASSSDDDFGDFGHFGHFGGGGGDDFFDDFGDFGTYJ
#2 b AWEERTGVTHRGEFGDFSDFSGGGGGGDAWSDFAASDADAADWERWEQWD
#3 C GRTVVGGVVVGGSWERGERVGEGDDFASDGGVQWEQWEQWERERYRYER
Kết quả mong muốn sẽ giống như thế này:
# class string result
# 1 a ASADSASAVVVVGVGGGSDASSSDDDFGDFGHFGHFGGGGGDDFFDDFGDFGTYJ TRUE
# 2 b AWEERTGVTHRGEFGDFSDFSGGGGGGDAWSDFAASDADAADWERWEQWD FALSE
# 3 C GRTVVGGVVVGGSWERGERVGEGDDFASDGGVQWEQWEQWERERYRYER TRUE
lẽ '$ kết quả dữ liệu <- grepl ('(V | G) {5,}', substr (dữ liệu $ string, 1,20))' – akrun
Cảm ơn @akrun nó hoạt động tốt –
Điều gì sẽ xảy ra nếu chỉ có 'VVVVV' và không phải bất kỳ 'G' nào trong 20 ký tự đầu tiên – akrun