Hi I want to evaluate NA and NaN to FALSE (for indexing) so I would like to have the result as indicated here: ,---- | > p <- c(1:10/100, NA, NaN) | > p | [1] 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.10 NA NaN | > p[p<=0.05] | [1] 0.01 0.02 0.03 0.04 0.05 NA NA | > p[sapply(p<=0.05, isTRUE)] | [1] 0.01 0.02 0.03 0.04 0.05 <<<=== I want this `---- Is there a way that I can do this more easily then in my example above? It works, but it strikes me that there is not a better way of doing this - am I missing a command or option? Thanks, Rainer -- Rainer M. Krug email: Rainer<at>krugs<dot>de PGP: 0x0F52F982 -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 494 bytes Desc: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20141014/832c205b/attachment.bin>
Hi Rainer, As "complete.cases()" does? p <- c(1:10/100, NA, NaN) complete.cases(p) [1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE FALSE FALSE Regards, Pascal On Tue, Oct 14, 2014 at 6:51 PM, Rainer M Krug <Rainer at krugs.de> wrote:> Hi > > I want to evaluate NA and NaN to FALSE (for indexing) so I would like to > have the result as indicated here: > > ,---- > | > p <- c(1:10/100, NA, NaN) > | > p > | [1] 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.10 NA NaN > | > p[p<=0.05] > | [1] 0.01 0.02 0.03 0.04 0.05 NA NA > | > p[sapply(p<=0.05, isTRUE)] > | [1] 0.01 0.02 0.03 0.04 0.05 <<<=== I want this > `---- > > Is there a way that I can do this more easily then in my example above? > It works, but it strikes me that there is not a better way of doing > this - am I missing a command or option? > > Thanks, > > Rainer > > -- > Rainer M. Krug > email: Rainer<at>krugs<dot>de > PGP: 0x0F52F982 > > ______________________________________________ > 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. >-- Pascal Oettli Project Scientist JAMSTEC Yokohama, Japan
use: which(p<=.05) this will not yield logical, but integer indices without NA On 14 October 2014 11:51, Rainer M Krug <Rainer at krugs.de> wrote:> Hi > > I want to evaluate NA and NaN to FALSE (for indexing) so I would like to > have the result as indicated here: > > ,---- > | > p <- c(1:10/100, NA, NaN) > | > p > | [1] 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.10 NA NaN > | > p[p<=0.05] > | [1] 0.01 0.02 0.03 0.04 0.05 NA NA > | > p[sapply(p<=0.05, isTRUE)] > | [1] 0.01 0.02 0.03 0.04 0.05 <<<=== I want this > `---- > > Is there a way that I can do this more easily then in my example above? > It works, but it strikes me that there is not a better way of doing > this - am I missing a command or option? > > Thanks, > > Rainer > > -- > Rainer M. Krug > email: Rainer<at>krugs<dot>de > PGP: 0x0F52F982 > > ______________________________________________ > 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. >
Hi, Perhaps still not as short as you want, but I normally use which(): p <- c(1:10/100, NA, NaN) p[which(p <= .05)] [1] 0.01 0.02 0.03 0.04 0.05 Cheers, Josh On Tue, Oct 14, 2014 at 8:51 PM, Rainer M Krug <Rainer at krugs.de> wrote:> Hi > > I want to evaluate NA and NaN to FALSE (for indexing) so I would like to > have the result as indicated here: > > ,---- > | > p <- c(1:10/100, NA, NaN) > | > p > | [1] 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.10 NA NaN > | > p[p<=0.05] > | [1] 0.01 0.02 0.03 0.04 0.05 NA NA > | > p[sapply(p<=0.05, isTRUE)] > | [1] 0.01 0.02 0.03 0.04 0.05 <<<=== I want this > `---- > > Is there a way that I can do this more easily then in my example above? > It works, but it strikes me that there is not a better way of doing > this - am I missing a command or option? > > Thanks, > > Rainer > > -- > Rainer M. Krug > email: Rainer<at>krugs<dot>de > PGP: 0x0F52F982 > > ______________________________________________ > 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. > >-- Joshua F. Wiley Ph.D. Student, UCLA Department of Psychology http://joshuawiley.com/ Senior Analyst, Elkhart Group Ltd. http://elkhartgroup.com Office: 260.673.5518 [[alternative HTML version deleted]]
Thanks Joshua and Sven - I completely forgot about which() . Pascal - I never new about complete.cases - interesting function. Thanks, Rainer Rainer M Krug <Rainer at krugs.de> writes:> Hi > > I want to evaluate NA and NaN to FALSE (for indexing) so I would like to > have the result as indicated here: > > ,---- > | > p <- c(1:10/100, NA, NaN) > | > p > | [1] 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.10 NA NaN > | > p[p<=0.05] > | [1] 0.01 0.02 0.03 0.04 0.05 NA NA > | > p[sapply(p<=0.05, isTRUE)] > | [1] 0.01 0.02 0.03 0.04 0.05 <<<=== I want this > `---- > > Is there a way that I can do this more easily then in my example above? > It works, but it strikes me that there is not a better way of doing > this - am I missing a command or option? > > Thanks, > > Rainer-- Rainer M. Krug email: Rainer<at>krugs<dot>de PGP: 0x0F52F982 -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 494 bytes Desc: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20141014/7b017434/attachment.bin>