Re: [R] count occurrence and distance of characters in string
> -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
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
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
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
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
> -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
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.