Better: b <- c(a[1]-1,a[-length(a)]) On 07 Aug 2014, at 17:28, Bart Kastermans <[email protected]> wrote:
> For readability I like: > >> b <- c(0,a[-length(a)]) >> which(a != b & a == 0) > [1] 4 12 18 >> which(a != b & a == 1) > [1] 1 6 16 23 > > > On 07 Aug 2014, at 17:23, William Dunlap <[email protected]> wrote: > >> My solution may be a bit clearer if you define the function isFirstInRun >> isFirstInRun <- function(x) { >> if (length(x) == 0) { >> logical(0) >> } else { >> c(TRUE, x[-1] != x[-length(x)]) >> } >> } >> >> Then that solution is equivalent to >> which(isFirstInRun(a) & a==1) >> >> If 'a' contains NA's then you have to decide how to deal with them. >> >> (The call to 'which' is not needed if you are going to be using the >> result as a subscript.) >> >> You may also want isLastInRun >> isLastInRun <- function(x) { >> if (length(x) == 0) { >> logical(0) >> } else { >> c(x[-1] != x[-length(x)], TRUE) >> } >> } >> Bill Dunlap >> TIBCO Software >> wdunlap tibco.com >> >> >> On Thu, Aug 7, 2014 at 7:36 AM, William Dunlap <[email protected]> wrote: >>>> a<-c(1,1,1,0,0,1,1,1,1,1,1,0,0,0,0,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1) >>>> which( a==1 & c(TRUE, a[-length(a)]!=1) ) >>> [1] 1 6 16 23 >>>> which( a==0 & c(TRUE, a[-length(a)]!=0) ) >>> [1] 4 12 18 >>> >>> Bill Dunlap >>> TIBCO Software >>> wdunlap tibco.com >>> >>> >>> On Wed, Aug 6, 2014 at 7:12 PM, Johnnycz <[email protected]> wrote: >>>> Hello,everybody, >>>> I have a sequence,like >>>> a<-c(1,1,1,0,0,1,1,1,1,1,1,0,0,0,0,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1),how >>>> to get the position of each first 1 and 0, that's to say, how to get >>>> b<-c(1,6,16,23) for first 1 and d<-c(4,12,18) for first 0. >>>> Many thanks! >>>> Johnny >>>> [[alternative HTML version deleted]] >>>> >>>> ______________________________________________ >>>> [email protected] 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. >> >> ______________________________________________ >> [email protected] 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. > ______________________________________________ [email protected] 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.

