[R] text search in r

David Winsemius dwinsemius at comcast.net
Fri Aug 3 00:44:13 CEST 2012


On Aug 2, 2012, at 2:27 PM, rnewbie565 wrote:

> I am trying to count the number of times that the characters in a  
> string
> change
> For example-
> new=c(AAAABBBBBABBBABB)

Presumably you meant to quote that string.

> I want to find the number of times that B changes to A and the  
> number of
> times that A changes to B. I tried the grep command but I only  
> figured out
> the positions of when B changes to A when I only need the number of  
> times it
> occurs.

 >  new=c('AAAABBBBBABBBABB')
 > unlist(strsplit(new,""))
  [1] "A" "A" "A" "A" "B" "B" "B" "B" "B" "A" "B" "B" "B" "A" "B" "B"
 > rle(unlist(strsplit(new,"")))
Run Length Encoding
   lengths: int [1:6] 4 5 1 3 1 2
   values : chr [1:6] "A" "B" "A" "B" "A" "B"

 > paste0( rle(unlist(strsplit(new,"")))$values, collapse="")
[1] "ABABAB"
 > gregexpr("AB", .Last.value)
[[1]]
[1] 1 3 5
attr(,"match.length")
[1] 2 2 2
attr(,"useBytes")
[1] TRUE


So the length of that list value could be used for the AB transitions.  
Similarly for the BA ones

 > strrle <- paste0( rle(unlist(strsplit(new,"")))$values, collapse="")
 > length( gregexpr("BA", strrle)[[1]] )
[1] 2

>
>
>
>
> --
> View this message in context: http://r.789695.n4.nabble.com/text-search-in-r-tp4638961.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.

David Winsemius, MD
Alameda, CA, USA



More information about the R-help mailing list