का उपयोग कर स्ट्रिंग में विशिष्ट अक्षरों के लगातार होने वाले खंड की पहचान करें, मैं यह पहचानना चाहता हूं कि नीचे दिए गए डेटा फ्रेम में स्ट्रिंग कॉलम "वी" या "जी" अक्षरों को पहले 20 वर्णों में कम से कम 5 बार दोहराता है या नहीं स्ट्रिंग।आर
नमूना डेटा:
data = data.frame(class = c('a','b','C'), string =
c("ASADSASAVVVVGVGGGSDASSSDDDFGDFGHFGHFGGGGGDDFFDDFGDFGTYJ",
"AWEERTGVTHRGEFGDFSDFSGGGGGGDAWSDFAASDADAADWERWEQWD",
"GRTVVGGVVVGGSWERGERVGEGDDFASDGGVQWEQWEQWERERYRYER"))
उदाहरण के लिए पहली पंक्ति में स्ट्रिंग पहले 20 चरित्र पदों के भीतर "VVVVG" है। इसी प्रकार तीसरी पंक्ति में स्ट्रिंग में "वीवीजीजीवी" है।
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 ('(वी | जी) {5,}', substr (डेटा $ स्ट्रिंग, 1,20))' – akrun
धन्यवाद @akrun यह ठीक काम करता है –
क्या होगा यदि पहले 20 वर्ण – akrun