Hello, I'm using range do define boundaries for a linear model, so the line I graph is only graphed for the range of data. There are NAs in the data, but I dont remember this being a problem before. I typed na.action=na.omit anyway, which has usually solved any NA issues in the past. Any idea why R cant do vector functions for these data? Solution? Thanks, Colin Wahl M.S. Biology candidate Western Washington University fit<-lm(sandcomb ~ CCEC25) z<-predict(fit, data.frame(CCEC25=range(CCEC25))) lines(range(CCEC25), z, lty=2, lwd=0.75, col="grey51")> is.vector(CCEC25)[1] TRUE> is.numeric(CCEC25)[1] TRUE> range(CCEC25)[1] NA NA> CCEC25[1] 375.8 8769.0 NA 4197.0 NA 36880.0 4167.0 13100.0 3694.0 [10] 51420.0 30660.0 30850.0 4076.0 NA 59450.0 16050.0 NA 65480.0 [19] 2101.0 16390.0 5968.0 11330.0 9112.0 8326.0> sessionInfo()R version 2.14.1 (2011-12-22) Platform: i386-apple-darwin9.8.0/i386 (32-bit) locale: [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8 attached base packages: [1] stats graphics grDevices utils datasets methods base loaded via a namespace (and not attached): [1] grid_2.14.1 lattice_0.20-0 lme4_0.999375-42 Matrix_1.0-2 [5] nlme_3.1-102 stats4_2.14.1 tools_2.14.1
Hi Colin, You should always check the help for your function: ?range says: range(..., na.rm = FALSE) Arguments: ...: any ?numeric? or character objects. na.rm: logical, indicating if ?NA?'s should be omitted. So for example:> x <- c(1, 2, NA, 3) > range(x)[1] NA NA> range(x, na.rm=TRUE)[1] 1 3 Sarah On Wed, Feb 1, 2012 at 7:48 PM, Colin Wahl <biowahl at gmail.com> wrote:> Hello, > I'm using range do define boundaries for a linear model, so the line I > graph is only graphed for the range of data. There are NAs in the > data, but I dont remember this being a problem before. I typed > na.action=na.omit anyway, which has usually solved any NA issues in > the past. Any idea why R cant do vector functions for these data? > Solution? > > Thanks, > Colin Wahl > M.S. Biology candidate > Western Washington University > > fit<-lm(sandcomb ~ CCEC25) > z<-predict(fit, data.frame(CCEC25=range(CCEC25))) > lines(range(CCEC25), z, lty=2, lwd=0.75, col="grey51") > > >> is.vector(CCEC25) > [1] TRUE > >> is.numeric(CCEC25) > [1] TRUE > >> range(CCEC25) > [1] NA NA > >> CCEC25 > ?[1] ? 375.8 ?8769.0 ? ? ?NA ?4197.0 ? ? ?NA 36880.0 ?4167.0 13100.0 ?3694.0 > [10] 51420.0 30660.0 30850.0 ?4076.0 ? ? ?NA 59450.0 16050.0 ? ? ?NA 65480.0 > [19] ?2101.0 16390.0 ?5968.0 11330.0 ?9112.0 ?8326.0 > >> sessionInfo() > R version 2.14.1 (2011-12-22) > Platform: i386-apple-darwin9.8.0/i386 (32-bit) > > locale: > [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8 > > attached base packages: > [1] stats ? ? graphics ?grDevices utils ? ? datasets ?methods ? base > > loaded via a namespace (and not attached): > [1] grid_2.14.1 ? ? ?lattice_0.20-0 ? lme4_0.999375-42 Matrix_1.0-2 > [5] nlme_3.1-102 ? ? stats4_2.14.1 ? ?tools_2.14.1 >-- Sarah Goslee http://www.functionaldiversity.org
range() is not affected by by options("na.action"). Use the argument na.rm=TRUE. For plotting purposes finite=TRUE is nice, as it skips +-Inf as well. > range(c(NA, 1, 2, Inf)) [1] NA NA > range(c(NA, 1, 2, Inf), na.rm=TRUE) [1] 1 Inf > range(c(NA, 1, 2, Inf), finite=TRUE) [1] 1 2 Bill Dunlap Spotfire, TIBCO Software wdunlap tibco.com> -----Original Message----- > From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf Of Colin Wahl > Sent: Wednesday, February 01, 2012 4:48 PM > To: r-help at r-project.org > Subject: [R] Problem with range() > > Hello, > I'm using range do define boundaries for a linear model, so the line I > graph is only graphed for the range of data. There are NAs in the > data, but I dont remember this being a problem before. I typed > na.action=na.omit anyway, which has usually solved any NA issues in > the past. Any idea why R cant do vector functions for these data? > Solution? > > Thanks, > Colin Wahl > M.S. Biology candidate > Western Washington University > > fit<-lm(sandcomb ~ CCEC25) > z<-predict(fit, data.frame(CCEC25=range(CCEC25))) > lines(range(CCEC25), z, lty=2, lwd=0.75, col="grey51") > > > > is.vector(CCEC25) > [1] TRUE > > > is.numeric(CCEC25) > [1] TRUE > > > range(CCEC25) > [1] NA NA > > > CCEC25 > [1] 375.8 8769.0 NA 4197.0 NA 36880.0 4167.0 13100.0 3694.0 > [10] 51420.0 30660.0 30850.0 4076.0 NA 59450.0 16050.0 NA 65480.0 > [19] 2101.0 16390.0 5968.0 11330.0 9112.0 8326.0 > > > sessionInfo() > R version 2.14.1 (2011-12-22) > Platform: i386-apple-darwin9.8.0/i386 (32-bit) > > locale: > [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8 > > attached base packages: > [1] stats graphics grDevices utils datasets methods base > > loaded via a namespace (and not attached): > [1] grid_2.14.1 lattice_0.20-0 lme4_0.999375-42 Matrix_1.0-2 > [5] nlme_3.1-102 stats4_2.14.1 tools_2.14.1 > > ______________________________________________ > 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.