Re: [R] count occurrence and distance of characters in string

2010-11-04 Thread William Dunlap
> -Original Message-
> From: r-help-boun...@r-project.org 
> [mailto:r-help-boun...@r-project.org] On Behalf Of Immanuel
> Sent: Thursday, November 04, 2010 4:54 PM
> To: Charles C. Berry
> Cc: r-help@r-project.org
> Subject: Re: [R] count occurrence and distance of characters in string
> 
> Hey,
> 
> thanks for the answer, actually I already typed an example
> but deleted it since I thought it's superfluous.
> regards
> 
> -
> string <- "kjokllokkoadddo"
> 
> # f1(string, "o") should return that "o" was found 4 times
> # f2(string, "o") should return that the distances between the "o"'s
> found is 3 , 2, 4
> -

Try gregexpr():
  > string <- "kjokllokkoadddo"
  > gregexpr("o", string)
  [[1]]
  [1]  3  7 10 15
  attr(,"match.length")
  [1] 1 1 1 1

  > gregexpr("o", c("kjokllokkoadddo", "ooofoo", "abcde"))
  [[1]]
  [1]  3  7 10 15
  attr(,"match.length")
  [1] 1 1 1 1

  [[2]]
  [1] 1 2 3 5 6
  attr(,"match.length")
  [1] 1 1 1 1 1

  [[3]] 
  [1] -1
  attr(,"match.length")
  [1] -1

Postprocess its output with length and diff to get what
your want.  E.g.,

  > g <- gregexpr("o", c("kjokllokkoadddo", "ooofoo", "abcde"))
  > sapply(g,length)
  [1] 4 5 1
  > lapply(g,function(x)diff(x)-1)
  [[1]]
  [1] 3 2 4

  [[2]]
  [1] 0 0 1 0

  [[3]]
  numeric(0)

Bill Dunlap
Spotfire, TIBCO Software
wdunlap tibco.com  

> 
> 
> On 11/05/2010 12:28 AM, Charles C. Berry wrote:
> > On Thu, 4 Nov 2010, Immanuel wrote:
> >
> >> Hello all,
> >>
> >> I want to know how often one character occurs in a given string
> >> and the distance from between every two occurences. 
> (distance = other
> >> characters between them).
> >
> > You should provide "commented, minimal, self-contained, reproducible
> > code" as asked.
> >
> > And especially for a question like this one with many simple answers
> > that RespondeRs will shower you with if only you give them 
> a starting
> > point.
> >
> > Use tapply, strsplit, seq, nchar, unlist, diff, "-", and 
> table for one
> > way.
> >
> > Chuck
> >
> >>
> >> thanks
> >>
> >> __
> >> R-help@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.
> >>
> >
> > Charles C. BerryDept of 
> Family/Preventive
> > Medicine
> > cbe...@tajo.ucsd.eduUC San Diego
> > http://famprevmed.ucsd.edu/faculty/cberry/  La Jolla, San Diego
> > 92093-0901
> >
> >
> >
> 
> __
> R-help@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.
> 

__
R-help@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.


Re: [R] count occurrence and distance of characters in string

2010-11-04 Thread David Winsemius


On Nov 4, 2010, at 8:06 PM, Charles C. Berry wrote:


On Fri, 5 Nov 2010, Immanuel wrote:


Hey,

thanks for the answer, actually I already typed an example
but deleted it since I thought it's superfluous.
regards

-
string <- "kjokllokkoadddo"

# f1(string, "o") should return that "o" was found 4 times


Other ways:

sum(unlist(strsplit(string, "")) == "o")
[1] 4


# f2(string, "o") should return that the distances between the "o"'s
found is 3 , 2, 4
-


> diff(grep("o", strsplit(string, "")[[1]]) ) -1
[1] 3 2 4




In that case, I'd use split:


res <- split(seq(nchar(string)),unlist(strsplit(string,'')))
length(res[['o']])

[1] 4

## or sapply(res,length)

a d j k l o
1 3 1 4 2 4

diff(res[['o']])-1

[1] 3 2 4

# or
sapply(sapply(res,diff),"-",1)

$a
numeric(0)

$d
[1] 0 0

$j
numeric(0)

$k
[1] 2 3 0

$l
[1] 0

$o
[1] 3 2 4




Chuck





On 11/05/2010 12:28 AM, Charles C. Berry wrote:

On Thu, 4 Nov 2010, Immanuel wrote:


Hello all,

I want to know how often one character occurs in a given string
and the distance from between every two occurences. (distance =  
other

characters between them).


You should provide "commented, minimal, self-contained, reproducible
code" as asked.

And especially for a question like this one with many simple answers
that RespondeRs will shower you with if only you give them a  
starting

point.

Use tapply, strsplit, seq, nchar, unlist, diff, "-", and table for  
one

way.

Chuck



thanks

__
R-help@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.



Charles C. BerryDept of Family/ 
Preventive

Medicine
cbe...@tajo.ucsd.eduUC San Diego
http://famprevmed.ucsd.edu/faculty/cberry/  La Jolla, San Diego
92093-0901








Charles C. BerryDept of Family/ 
Preventive Medicine

cbe...@tajo.ucsd.eduUC San Diego
http://famprevmed.ucsd.edu/faculty/cberry/  La Jolla, San Diego  
92093-0901


__
R-help@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
West Hartford, CT

__
R-help@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.


Re: [R] count occurrence and distance of characters in string

2010-11-04 Thread Charles C. Berry

On Fri, 5 Nov 2010, Immanuel wrote:


Hey,

thanks for the answer, actually I already typed an example
but deleted it since I thought it's superfluous.
regards

-
string <- "kjokllokkoadddo"

# f1(string, "o") should return that "o" was found 4 times
# f2(string, "o") should return that the distances between the "o"'s
found is 3 , 2, 4
-


In that case, I'd use split:


res <- split(seq(nchar(string)),unlist(strsplit(string,'')))
length(res[['o']])

[1] 4
## or 
sapply(res,length)

a d j k l o
1 3 1 4 2 4

diff(res[['o']])-1

[1] 3 2 4

# or
sapply(sapply(res,diff),"-",1)

$a
numeric(0)

$d
[1] 0 0

$j
numeric(0)

$k
[1] 2 3 0

$l
[1] 0

$o
[1] 3 2 4




Chuck





On 11/05/2010 12:28 AM, Charles C. Berry wrote:

On Thu, 4 Nov 2010, Immanuel wrote:


Hello all,

I want to know how often one character occurs in a given string
and the distance from between every two occurences. (distance = other
characters between them).


You should provide "commented, minimal, self-contained, reproducible
code" as asked.

And especially for a question like this one with many simple answers
that RespondeRs will shower you with if only you give them a starting
point.

Use tapply, strsplit, seq, nchar, unlist, diff, "-", and table for one
way.

Chuck



thanks

__
R-help@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.



Charles C. BerryDept of Family/Preventive
Medicine
cbe...@tajo.ucsd.eduUC San Diego
http://famprevmed.ucsd.edu/faculty/cberry/  La Jolla, San Diego
92093-0901








Charles C. BerryDept of Family/Preventive Medicine
cbe...@tajo.ucsd.eduUC San Diego
http://famprevmed.ucsd.edu/faculty/cberry/  La Jolla, San Diego 92093-0901

__
R-help@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.


Re: [R] count occurrence and distance of characters in string

2010-11-04 Thread Immanuel
Hey,

thanks for the answer, actually I already typed an example
but deleted it since I thought it's superfluous.
regards

-
string <- "kjokllokkoadddo"

# f1(string, "o") should return that "o" was found 4 times
# f2(string, "o") should return that the distances between the "o"'s
found is 3 , 2, 4
-


On 11/05/2010 12:28 AM, Charles C. Berry wrote:
> On Thu, 4 Nov 2010, Immanuel wrote:
>
>> Hello all,
>>
>> I want to know how often one character occurs in a given string
>> and the distance from between every two occurences. (distance = other
>> characters between them).
>
> You should provide "commented, minimal, self-contained, reproducible
> code" as asked.
>
> And especially for a question like this one with many simple answers
> that RespondeRs will shower you with if only you give them a starting
> point.
>
> Use tapply, strsplit, seq, nchar, unlist, diff, "-", and table for one
> way.
>
> Chuck
>
>>
>> thanks
>>
>> __
>> R-help@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.
>>
>
> Charles C. BerryDept of Family/Preventive
> Medicine
> cbe...@tajo.ucsd.eduUC San Diego
> http://famprevmed.ucsd.edu/faculty/cberry/  La Jolla, San Diego
> 92093-0901
>
>
>

__
R-help@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.


Re: [R] count occurrence and distance of characters in string

2010-11-04 Thread Charles C. Berry

On Thu, 4 Nov 2010, Immanuel wrote:


Hello all,

I want to know how often one character occurs in a given string
and the distance from between every two occurences. (distance = other
characters between them).


You should provide "commented, minimal, self-contained, reproducible code" 
as asked.


And especially for a question like this one with many simple answers that 
RespondeRs will shower you with if only you give them a starting point.


Use tapply, strsplit, seq, nchar, unlist, diff, "-", and table for one 
way.


Chuck



thanks

__
R-help@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.



Charles C. BerryDept of Family/Preventive Medicine
cbe...@tajo.ucsd.eduUC San Diego
http://famprevmed.ucsd.edu/faculty/cberry/  La Jolla, San Diego 92093-0901

__
R-help@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.


Re: [R] count occurrence and distance of characters in string

2010-11-04 Thread Nordlund, Dan (DSHS/RDA)
> -Original Message-
> From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-
> project.org] On Behalf Of Immanuel
> Sent: Thursday, November 04, 2010 3:42 PM
> To: r-help@r-project.org
> Subject: [R] count occurrence and distance of characters in string
> 
> Hello all,
> 
> I want to know how often one character occurs in a given string
> and the distance from between every two occurences. (distance = other
> characters between them).
> 
> thanks
> 

Without a reproducible example, I can only guess.  But this should get you 
started.

s <- 'abcdeabcxdeabcdeaxabcdeabcdeabcdxeabc'
chr.pos <- which(unlist(strsplit(s,NULL)) == 'x')
chr.count <- length(chr.pos)
chr.dist <- diff(chr.pos)-1
chr.pos 
chr.count 
chr.dist

Hope this is helpful,

Dan

Daniel J. Nordlund
Washington State Department of Social and Health Services
Planning, Performance, and Accountability
Research and Data Analysis Division
Olympia, WA 98504-5204


__
R-help@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.


[R] count occurrence and distance of characters in string

2010-11-04 Thread Immanuel
Hello all,

I want to know how often one character occurs in a given string
and the distance from between every two occurences. (distance = other
characters between them).

thanks

__
R-help@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.