Not in the direction I was looking, but your function "fff" really speed up the process, and using it along with "fff3" is fine for me.
Thanks Petr PIKAL wrote: > Hi > > r-help-boun...@r-project.org napsal dne 16.06.2009 14:31:21: > > >> Hi Jim, >> >> What you are saying is correct. Although, my computer might not have >> same speed and I am getting the following for 10M entries: >> >> user system elapsed >> 0.559 0.038 0.607 >> > > With numbers you may speed it a bit by > > >> x = c(1,2,rep(1,10000000)) >> system.time(print(all(x[1] == x))) >> > [1] FALSE > user system elapsed > 0.13 0.01 0.14 > >> fff<-function(x) {lx<-length(x); (x[1]*lx)==sum(x)} >> system.time(print(fff(x))) >> > [1] FALSE > user system elapsed > 0.03 0.00 0.03 > > and with character vector I would try this > > >> x<-c("a", "b", rep("a", 10000000)) >> > > >> fff2<-function(x) length(unique(x))==1 >> system.time(print(fff2(x))) >> > [1] FALSE > user system elapsed > 0.39 0.08 0.47 > > If you are sure that first let say 1000 can be representative try > > >> fff2<-function(x) length(unique(x[1:1000]))==1 >> system.time(print(fff2(x))) >> > [1] FALSE > user system elapsed > 0 0 0 > > or put a double check, try first 1000 and if there is no difference check > the rest > > fff3<-function(x) if (length(unique(x[1:1000]))==1) length(unique(x))==1 > else FALSE > > Regards > Petr > > > >> Moreover, in the case of character vectors, it gets more than double. >> >> In my modeling, which is already highly time consuming, I need to do >> check this for few thousand vectors and the entries can easily be 10M in >> > > >> each vector. So I am just looking for any possibilities of time saving. >> I am pretty sure that whenever elements are not all equal, it can be >> concluded from any few entries (most of the times). It will be worth if >> I can find a way which stops checking further the moment it find two >> distinct elements. >> >> Regards >> Utkarsh >> >> >> jim holtman wrote: >> >>> Just check that the first (or any other element) is equal to all the >>> > rest: > >>>> x = c(1,2,rep(1,10000000)) # 10,000,000 >>>> system.time(print(all(x[1] == x))) >>>> >>> [1] FALSE >>> user system elapsed >>> 0.18 0.00 0.19 >>> >>> >>> This was for 10M entries. >>> >>> On Tue, Jun 16, 2009 at 7:42 AM, utkarshsinghal >>> <utkarsh.sing...@global-analytics.com >>> <mailto:utkarsh.sing...@global-analytics.com>> wrote: >>> >>> >>> Hi All, >>> >>> There are several replies to the question below, but I think there >>> must >>> exist a better way of doing so. >>> I just want to check whether all the elements of a vector are >>> > same. My > >>> vector has one million elements and it is highly likely that there >>> > are > >>> distinct elements in the first few itself. For example: >>> >>> > x = c(1,2,rep(1,100000)) >>> >>> I want the answer as FALSE, which is clear from the first two >>> observations itself and we don't need to check for the rest. >>> >>> Does anybody know the most efficient way of doing this? >>> >>> Regards >>> Utkarsh >>> >>> >>> >>> From: Francisco J. Zagmutt <gerifalte28_at_hotmail.com >>> <http://gerifalte28_at_hotmail.com/> >>> <mailto:gerifalte28_at_hotmail.com >>> <mailto:gerifalte28_at_hotmail.com >>> >> ?Subject=Re:%20%5BR%5D%20Testing% >> 20if%20all%20elements%20are%20equal%20in%20a%20vector/matrix>> >> >>> Date: Tue 30 Aug 2005 - 06:05:20 EST >>> >>> >>> Hi Doran >>> >>> The documentation for isTRUE reads 'isTRUE(x)' is an abbreviation >>> > of > >>> 'identical(TRUE,x)' so actually Vincent's solutions is "cleaner" >>> > than > >>> using identical :) >>> >>> Cheers >>> >>> Francisco >>> >>> />From: "Doran, Harold" <hdo...@air.org <mailto:hdo...@air.org>> / >>> />To: <vincent.gou...@act.ulaval.ca >>> <mailto:vincent.gou...@act.ulaval.ca>>, <r-h...@stat.math.ethz.ch >>> <mailto:r-h...@stat.math.ethz.ch>> / >>> />Subject: Re: [R] Testing if all elements are equal in a >>> vector/matrix / >>> />Date: Mon, 29 Aug 2005 15:49:20 -0400 / >>> /> / >>> >See ?identical >>> < >>> > http://tolstoy.newcastle.edu.au/R/help/05/08/11201.html#11202qlink1> > >>> /> / >>> />-----Original Message----- / >>> />From: r-help-boun...@stat.math.ethz.ch >>> <mailto:r-help-boun...@stat.math.ethz.ch> / >>> />[mailto:r-help-boun...@stat.math.ethz.ch >>> <mailto:r-help-boun...@stat.math.ethz.ch>] On Behalf Of Vincent >>> Goulet / >>> />Sent: Monday, August 29, 2005 3:35 PM / >>> />To: r-h...@stat.math.ethz.ch <mailto:r-h...@stat.math.ethz.ch> / >>> />Subject: [R] Testing if all elements are equal in a >>> > vector/matrix / > >>> /> / >>> /> / >>> />Is there a canonical way to check if all elements of a vector or >>> matrix are / >>> />the same? Solutions below work, but look hackish to me. / >>> /> / >>> /> > x <- rep(1, 10) / >>> /> > all(x == x[1]) # == operator does not provide for small >>> differences / >>> */>[1] TRUE / >>> */> > isTRUE(all.equal(x, rep(x[1], length(x)))) # ugly / >>> */>[1] TRUE / >>> */> / >>> />Best, / >>> /> / >>> />Vincent / >>> />-- / >>> /> Vincent Goulet, Associate Professor / >>> /> École d'actuariat / >>> /> Université Laval, Québec / >>> /> Vincent.Goulet_at_act.ulaval.ca >>> <http://vincent.goulet_at_act.ulaval.ca/> >>> <mailto:Vincent.Goulet_at_act.ulaval.ca >>> <mailto:Vincent.Goulet_at_act.ulaval.ca>?Subject=Re:%20%5BR%5D% >>> >> 20Testing%20if%20all%20elements%20are%20equal%20in%20a%20vector/matrix> >> >>> http://vgoulet.act.ulaval.ca <http://vgoulet.act.ulaval.ca/> / >>> /> / >>> />______________________________________________ / >>> />r-h...@stat.math.ethz.ch <mailto:r-h...@stat.math.ethz.ch> >>> mailing list / >>> />https://stat.ethz.ch/mailman/listinfo/r-help / >>> />PLEASE do read the posting guide! / >>> />http://www.R-project.org/posting-guide.html >>> <http://www.r-project.org/posting-guide.html> / >>> /> / >>> />______________________________________________ / >>> />r-h...@stat.math.ethz.ch <mailto:r-h...@stat.math.ethz.ch> >>> mailing list / >>> />https://stat.ethz.ch/mailman/listinfo/r-help / >>> />PLEASE do read the posting guide! / >>> />http://www.R-project.org/posting-guide.html >>> <http://www.r-project.org/posting-guide.html> / >>> >>> [[alternative HTML version deleted]] >>> >>> >>> ______________________________________________ >>> R-help@r-project.org <mailto: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 >>> <http://www.r-project.org/posting-guide.html> >>> and provide commented, minimal, self-contained, reproducible code. >>> >>> >>> >>> >>> -- >>> Jim Holtman >>> Cincinnati, OH >>> +1 513 646 9390 >>> >>> What is the problem that you are trying to solve? >>> >> [[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. >> > > > > [[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.