6

以下のデータ フレームの文字列列が、文字列の最初の 20 文字内で文字「V」または「G」を少なくとも 5 回繰り返すかどうかを特定したいと思います。

サンプルデータ:

 data = data.frame(class = c('a','b','C'), string =
 c("ASADSASAVVVVGVGGGSDASSSDDDFGDFGHFGHFGGGGGDDFFDDFGDFGTYJ",
 "AWEERTGVTHRGEFGDFSDFSGGGGGGDAWSDFAASDADAADWERWEQWD",
 "GRTVVGGVVVGGSWERGERVGEGDDFASDGGVQWEQWEQWERERYRYER"))

たとえば、最初の行の文字列には、最初の 20 文字の位置に「VVVVG」があります。同様に、3 行目の文字列には「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
4

2 に答える 2

4

なしの別のオプションsubstr

within(data, result<-grepl('^.{,15}[VG]{5,}', string))
于 2015-06-04T15:05:14.820 に答える