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.singhal@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
> <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" <HDoran@air.org> /
> />To: <vincent.goulet@act.ulaval.ca>, <r-help@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-bounces@stat.math.ethz.ch /
> />[mailto:r-help-bounces@stat.math.ethz.ch] On Behalf Of Vincent Goulet /
> />Sent: Monday, August 29, 2005 3:35 PM /
> />To: r-help@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
> ?Subject=Re:%20%5BR%5D%20Testing%20if%20all%20elements%20are%20equal%20in%20a%20vector/matrix>
> http://vgoulet.act.ulaval.ca /
> /> /
> />______________________________________________ /
> />R-help@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-help@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 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]]


