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 <wdun...@tibco.com> 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 <wdun...@tibco.com> 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 <johnn...@yeah.net> 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]] >>> >>> ______________________________________________ >>> 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. ______________________________________________ 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.