Hi all For the data below, I would like to return a logical value indicating differences in the data. #Create data Data..<-data.frame(a=rep(1,10),b=c(rep(1,9),2),c=c(rep(1,8),2,2)) a b c 1 1 1 1 2 1 1 1 3 1 1 1 4 1 1 1 5 1 1 1 6 1 1 1 7 1 1 1 8 1 1 1 9 1 1 2 10 1 2 2 So what I want is to return logical value telling me if all the values are the same. So the result would be a b c DidChange 1 1 1 1 FALSE 2 1 1 1 FALSE 3 1 1 1 FALSE 4 1 1 1 FALSE 5 1 1 1 FALSE 6 1 1 1 FALSE 7 1 1 1 FALSE 8 1 1 1 FALSE 9 1 1 2 TRUE 10 1 2 2 TRUE I bet apply could handle this elegantly but that family of functions is still not 100% intuitive to me. Thoughts. Thanks everyone Cheers, Josh -- View this message in context: http://r.789695.n4.nabble.com/I-bet-apply-has-a-solution-tp4362294p4362294.html Sent from the R help mailing list archive at Nabble.com.
How bout: apply(Data..,1, function(vec) !all(vec==vec[1])) [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE On Mon, Feb 6, 2012 at 10:34 AM, LCOG1 <jroll@lcog.org> wrote:> Hi all > For the data below, I would like to return a logical value indicating > differences in the data. > > #Create data > Data..<-data.frame(a=rep(1,10),b=c(rep(1,9),2),c=c(rep(1,8),2,2)) > > a b c > 1 1 1 1 > 2 1 1 1 > 3 1 1 1 > 4 1 1 1 > 5 1 1 1 > 6 1 1 1 > 7 1 1 1 > 8 1 1 1 > 9 1 1 2 > 10 1 2 2 > > > So what I want is to return logical value telling me if all the values are > the same. So the result would be a b c DidChange > 1 1 1 1 FALSE > 2 1 1 1 FALSE > 3 1 1 1 FALSE > 4 1 1 1 FALSE > 5 1 1 1 FALSE > 6 1 1 1 FALSE > 7 1 1 1 FALSE > 8 1 1 1 FALSE > 9 1 1 2 TRUE > 10 1 2 2 TRUE > > I bet apply could handle this elegantly but that family of functions is > still not 100% intuitive to me. Thoughts. Thanks everyone > > Cheers, > Josh > > > -- > View this message in context: > http://r.789695.n4.nabble.com/I-bet-apply-has-a-solution-tp4362294p4362294.html > Sent from the R help mailing list archive at Nabble.com. > > ______________________________________________ > 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]]
Hi Josh, How about apply(Data, 1, function(row) sd(row) == 0) ? Best, Ista On Mon, Feb 6, 2012 at 1:34 PM, LCOG1 <jroll at lcog.org> wrote:> Hi all > For the data below, I would like to return a logical value indicating > differences in the data. > > #Create data > Data..<-data.frame(a=rep(1,10),b=c(rep(1,9),2),c=c(rep(1,8),2,2)) > > ? a b c > 1 ?1 1 1 > 2 ?1 1 1 > 3 ?1 1 1 > 4 ?1 1 1 > 5 ?1 1 1 > 6 ?1 1 1 > 7 ?1 1 1 > 8 ?1 1 1 > 9 ?1 1 2 > 10 1 2 2 > > > So what I want is to return logical value telling me if all the values are > the same. ?So the result would be a b c DidChange > 1 ?1 1 1 ? ? FALSE > 2 ?1 1 1 ? ? FALSE > 3 ?1 1 1 ? ? FALSE > 4 ?1 1 1 ? ? FALSE > 5 ?1 1 1 ? ? FALSE > 6 ?1 1 1 ? ? FALSE > 7 ?1 1 1 ? ? FALSE > 8 ?1 1 1 ? ? FALSE > 9 ?1 1 2 ? ? ?TRUE > 10 1 2 2 ? ? ?TRUE > > I bet apply could handle this elegantly but that family of functions is > still not 100% intuitive to me. ?Thoughts. ?Thanks everyone > > Cheers, > ?Josh > > > -- > View this message in context: http://r.789695.n4.nabble.com/I-bet-apply-has-a-solution-tp4362294p4362294.html > Sent from the R help mailing list archive at Nabble.com. > > ______________________________________________ > R-help at 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.
duplicated(Data..) On Mon, Feb 6, 2012 at 11:34 AM, LCOG1 <jroll at lcog.org> wrote:> Hi all > For the data below, I would like to return a logical value indicating > differences in the data. > > #Create data > Data..<-data.frame(a=rep(1,10),b=c(rep(1,9),2),c=c(rep(1,8),2,2)) > > ? a b c > 1 ?1 1 1 > 2 ?1 1 1 > 3 ?1 1 1 > 4 ?1 1 1 > 5 ?1 1 1 > 6 ?1 1 1 > 7 ?1 1 1 > 8 ?1 1 1 > 9 ?1 1 2 > 10 1 2 2 > > > So what I want is to return logical value telling me if all the values are > the same. ?So the result would be a b c DidChange > 1 ?1 1 1 ? ? FALSE > 2 ?1 1 1 ? ? FALSE > 3 ?1 1 1 ? ? FALSE > 4 ?1 1 1 ? ? FALSE > 5 ?1 1 1 ? ? FALSE > 6 ?1 1 1 ? ? FALSE > 7 ?1 1 1 ? ? FALSE > 8 ?1 1 1 ? ? FALSE > 9 ?1 1 2 ? ? ?TRUE > 10 1 2 2 ? ? ?TRUE > > I bet apply could handle this elegantly but that family of functions is > still not 100% intuitive to me. ?Thoughts. ?Thanks everyone > > Cheers, > ?Josh > > > -- > View this message in context: http://r.789695.n4.nabble.com/I-bet-apply-has-a-solution-tp4362294p4362294.html > Sent from the R help mailing list archive at Nabble.com. > > ______________________________________________ > R-help at 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.
No. This does not do anything like what the OP wanted. Did you ***try*** it, for crying out loud? cheers, Rolf Turner On 07/02/12 08:29, ilai wrote:> duplicated(Data..) > > On Mon, Feb 6, 2012 at 11:34 AM, LCOG1<jroll at lcog.org> wrote: >> Hi all >> For the data below, I would like to return a logical value indicating >> differences in the data. >> >> #Create data >> Data..<-data.frame(a=rep(1,10),b=c(rep(1,9),2),c=c(rep(1,8),2,2)) >> >> a b c >> 1 1 1 1 >> 2 1 1 1 >> 3 1 1 1 >> 4 1 1 1 >> 5 1 1 1 >> 6 1 1 1 >> 7 1 1 1 >> 8 1 1 1 >> 9 1 1 2 >> 10 1 2 2 >> >> >> So what I want is to return logical value telling me if all the values are >> the same. So the result would be a b c DidChange >> 1 1 1 1 FALSE >> 2 1 1 1 FALSE >> 3 1 1 1 FALSE >> 4 1 1 1 FALSE >> 5 1 1 1 FALSE >> 6 1 1 1 FALSE >> 7 1 1 1 FALSE >> 8 1 1 1 FALSE >> 9 1 1 2 TRUE >> 10 1 2 2 TRUE >> >> I bet apply could handle this elegantly but that family of functions is >> still not 100% intuitive to me. Thoughts. Thanks everyone >> >> Cheers, >> Josh
Hi as.logical(rowSums(apply(Data, 2, diff)>0)) here is another option. Regards Petr> > Hi all > For the data below, I would like to return a logical value indicating > differences in the data. > > #Create data > Data..<-data.frame(a=rep(1,10),b=c(rep(1,9),2),c=c(rep(1,8),2,2)) > > a b c > 1 1 1 1 > 2 1 1 1 > 3 1 1 1 > 4 1 1 1 > 5 1 1 1 > 6 1 1 1 > 7 1 1 1 > 8 1 1 1 > 9 1 1 2 > 10 1 2 2 > > > So what I want is to return logical value telling me if all the valuesare> the same. So the result would be a b c DidChange > 1 1 1 1 FALSE > 2 1 1 1 FALSE > 3 1 1 1 FALSE > 4 1 1 1 FALSE > 5 1 1 1 FALSE > 6 1 1 1 FALSE > 7 1 1 1 FALSE > 8 1 1 1 FALSE > 9 1 1 2 TRUE > 10 1 2 2 TRUE > > I bet apply could handle this elegantly but that family of functions is > still not 100% intuitive to me. Thoughts. Thanks everyone > > Cheers, > Josh > > > -- > View this message in context: http://r.789695.n4.nabble.com/I-bet-apply- > has-a-solution-tp4362294p4362294.html > Sent from the R help mailing list archive at Nabble.com. > > ______________________________________________ > R-help at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guidehttp://www.R-project.org/posting-guide.html> and provide commented, minimal, self-contained, reproducible code.