I am trying to find the function where I can search for a pattern in a
text string (I thought I could use grep for this but no :().
x
[1] "abcdefghijkl"
I want to find the positions (i.e. equivalent of nchar) for "cd" and
in case there are multiple hits .. then the results as a array
Thank you.
I am trying to find the function where I can search for a pattern in a
text string (I thought I could use grep for this but no :().
Correct, but reading
?grep
and running
example( grep )
should show you how to do that search.
x
[1] "abcdefghijkl"
I want to find the positions (i.e. equivalent of nchar) for "cd" and
in case there are multiple hits .. then the results as a array
You will need to deal with the possibility that there are more 'cd's in
some elements of 'text' than in others.
So, it is not obvious that an _array_ will work without some special
tooling.
HTH,
Chuck
I am trying to find the function where I can search for a pattern in a
text string (I thought I could use grep for this but no :().
x
[1] "abcdefghijkl"
I want to find the positions (i.e. equivalent of nchar) for "cd" and
in case there are multiple hits .. then the results as a array
Thank you.
On Sun, Dec 05, 2010 at 08:04:08AM +0530, Santosh Srinivas wrote:
I am trying to find the function where I can search for a pattern in a
text string (I thought I could use grep for this but no :().
x
[1] "abcdefghijkl"
I want to find the positions (i.e. equivalent of nchar) for "cd" and
in case there are multiple hits .. then the results as a array
For a single string, for example
p <- gregexpr("cd", "abcdecdecdcd")[[1]]
p
[1] 3 6 9 11
attr(,"match.length")
[1] 2 2 2 2
as.numeric(p) # [1] 3 6 9 11
For a vector of strings, for example
p <- gregexpr("cd", c("abcde", "acdecde", "abcdecdecdcd", "cdcd"))
m <- max(unlist(lapply(p, length)))
out <- matrix(nrow=length(p), ncol=m)
for (i in seq(nrow(out))) {
out[i, seq(length(p[[i]]))] <- p[[i]]
}
out
[,1] [,2] [,3] [,4]
[1,] 3 NA NA NA
[2,] 2 5 NA NA
[3,] 3 6 9 11
[4,] 1 3 NA NA
Petr Savicky.