> On Nov 5, 2015, at 4:58 PM, Jeff Newmiller <jdnewmil at dcn.davis.ca.us> wrote: > > Solution is to always use the stringsAsFactors=TRUE option in your data.frame() function calls.Since that is the default, I?m wondering if you meant to say FALSE? ? David.> --------------------------------------------------------------------------- > Jeff Newmiller The ..... ..... Go Live... > DCN:<jdnewmil at dcn.davis.ca.us> Basics: ##.#. ##.#. Live Go... > Live: OO#.. Dead: OO#.. Playing > Research Engineer (Solar/Batteries O.O#. #.O#. with > /Software/Embedded Controllers) .OO#. .OO#. rocks...1k > --------------------------------------------------------------------------- > Sent from my phone. Please excuse my brevity. > > On November 5, 2015 3:59:10 PM PST, Axel Urbiz <axel.urbiz at gmail.com> wrote: >> Hello, >> >> Is there a way to avoid the warning below in dplyr. I?m performing an >> operation within groups, and the warning says that the factors created >> from each group do not have the same levels, and so it coerces the >> factor to character. I?m using this inside a package I?m developing. >> I?d appreciate your recommendation on how to handle this. >> >> library(dplyr) >> >> set.seed(4) >> df <- data.frame(pred = rnorm(100), models = gl(2, 50, 100, labels >> c("model1", "model2"))) >> >> create_bins <- function (pred, nBins) { >> Breaks <- unique(quantile(pred, probs = seq(0, 1, 1/nBins))) >> bin <- data.frame(pred = pred, bin = cut(pred, breaks = Breaks, >> include.lowest = TRUE)) >> bin >> } >> >> res_dplyr <- df %>% group_by(models) %>% do(create_bins(.$pred, 10)) >> Warning message: >> In rbind_all(out[[1]]) : Unequal factor levels: coercing to character >> >> Thank you, >> Axel. >> >> >> [[alternative HTML version deleted]] >> >> ______________________________________________ >> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see >> 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. > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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.David Winsemius Alameda, CA, USA
Yes, that was my intention, but it appears I may not have read his code carefully enough. --------------------------------------------------------------------------- Jeff Newmiller The ..... ..... Go Live... DCN:<jdnewmil at dcn.davis.ca.us> Basics: ##.#. ##.#. Live Go... Live: OO#.. Dead: OO#.. Playing Research Engineer (Solar/Batteries O.O#. #.O#. with /Software/Embedded Controllers) .OO#. .OO#. rocks...1k --------------------------------------------------------------------------- Sent from my phone. Please excuse my brevity. On November 5, 2015 5:23:38 PM PST, David Winsemius <dwinsemius at comcast.net> wrote:> >> On Nov 5, 2015, at 4:58 PM, Jeff Newmiller <jdnewmil at dcn.davis.ca.us> >wrote: >> >> Solution is to always use the stringsAsFactors=TRUE option in your >data.frame() function calls. > >Since that is the default, I?m wondering if you meant to say FALSE? > >? >David. >> >--------------------------------------------------------------------------- >> Jeff Newmiller The ..... ..... Go >Live... >> DCN:<jdnewmil at dcn.davis.ca.us> Basics: ##.#. ##.#. Live >Go... >> Live: OO#.. Dead: OO#.. >Playing >> Research Engineer (Solar/Batteries O.O#. #.O#. with >> /Software/Embedded Controllers) .OO#. .OO#. >rocks...1k >> >--------------------------------------------------------------------------- > >> Sent from my phone. Please excuse my brevity. >> >> On November 5, 2015 3:59:10 PM PST, Axel Urbiz <axel.urbiz at gmail.com> >wrote: >>> Hello, >>> >>> Is there a way to avoid the warning below in dplyr. I?m performing >an >>> operation within groups, and the warning says that the factors >created >>> from each group do not have the same levels, and so it coerces the >>> factor to character. I?m using this inside a package I?m developing. >>> I?d appreciate your recommendation on how to handle this. >>> >>> library(dplyr) >>> >>> set.seed(4) >>> df <- data.frame(pred = rnorm(100), models = gl(2, 50, 100, labels >>> c("model1", "model2"))) >>> >>> create_bins <- function (pred, nBins) { >>> Breaks <- unique(quantile(pred, probs = seq(0, 1, 1/nBins))) >>> bin <- data.frame(pred = pred, bin = cut(pred, breaks = Breaks, >>> include.lowest = TRUE)) >>> bin >>> } >>> >>> res_dplyr <- df %>% group_by(models) %>% do(create_bins(.$pred, 10)) >>> Warning message: >>> In rbind_all(out[[1]]) : Unequal factor levels: coercing to >character >>> >>> Thank you, >>> Axel. >>> >>> >>> [[alternative HTML version deleted]] >>> >>> ______________________________________________ >>> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see >>> 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. >> >> ______________________________________________ >> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see >> 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. > >David Winsemius >Alameda, CA, USA
Did you mean to add stringsAsFactors=FALSE to the following call to data.frame? bin <- data.frame( pred = pred, bin = cut(pred, breaks = Breaks, include.lowest = TRUE)) Since cut() produces a factor you would also have to convert it to character to make stringAsFactors=FALSE to have an effect. bin <- data.frame(stringsAsFactors=FALSE, pred = pred, bin = as.character(cut(pred, breaks = Breaks, include.lowest = TRUE))) However, I suspect that things would work out better if all the calls to cut used the same breaks and then leaving it as a factor would be fine. Bill Dunlap TIBCO Software wdunlap tibco.com On Thu, Nov 5, 2015 at 5:45 PM, Jeff Newmiller <jdnewmil at dcn.davis.ca.us> wrote:> Yes, that was my intention, but it appears I may not have read his code > carefully enough. > --------------------------------------------------------------------------- > Jeff Newmiller The ..... ..... Go Live... > DCN:<jdnewmil at dcn.davis.ca.us> Basics: ##.#. ##.#. Live > Go... > Live: OO#.. Dead: OO#.. Playing > Research Engineer (Solar/Batteries O.O#. #.O#. with > /Software/Embedded Controllers) .OO#. .OO#. rocks...1k > --------------------------------------------------------------------------- > Sent from my phone. Please excuse my brevity. > > On November 5, 2015 5:23:38 PM PST, David Winsemius < > dwinsemius at comcast.net> wrote: > > > >> On Nov 5, 2015, at 4:58 PM, Jeff Newmiller <jdnewmil at dcn.davis.ca.us> > >wrote: > >> > >> Solution is to always use the stringsAsFactors=TRUE option in your > >data.frame() function calls. > > > >Since that is the default, I?m wondering if you meant to say FALSE? > > > >? > >David. > >> > > >--------------------------------------------------------------------------- > >> Jeff Newmiller The ..... ..... Go > >Live... > >> DCN:<jdnewmil at dcn.davis.ca.us> Basics: ##.#. ##.#. Live > >Go... > >> Live: OO#.. Dead: OO#.. > >Playing > >> Research Engineer (Solar/Batteries O.O#. #.O#. with > >> /Software/Embedded Controllers) .OO#. .OO#. > >rocks...1k > >> > > >--------------------------------------------------------------------------- > > > >> Sent from my phone. Please excuse my brevity. > >> > >> On November 5, 2015 3:59:10 PM PST, Axel Urbiz <axel.urbiz at gmail.com> > >wrote: > >>> Hello, > >>> > >>> Is there a way to avoid the warning below in dplyr. I?m performing > >an > >>> operation within groups, and the warning says that the factors > >created > >>> from each group do not have the same levels, and so it coerces the > >>> factor to character. I?m using this inside a package I?m developing. > >>> I?d appreciate your recommendation on how to handle this. > >>> > >>> library(dplyr) > >>> > >>> set.seed(4) > >>> df <- data.frame(pred = rnorm(100), models = gl(2, 50, 100, labels > >>> c("model1", "model2"))) > >>> > >>> create_bins <- function (pred, nBins) { > >>> Breaks <- unique(quantile(pred, probs = seq(0, 1, 1/nBins))) > >>> bin <- data.frame(pred = pred, bin = cut(pred, breaks = Breaks, > >>> include.lowest = TRUE)) > >>> bin > >>> } > >>> > >>> res_dplyr <- df %>% group_by(models) %>% do(create_bins(.$pred, 10)) > >>> Warning message: > >>> In rbind_all(out[[1]]) : Unequal factor levels: coercing to > >character > >>> > >>> Thank you, > >>> Axel. > >>> > >>> > >>> [[alternative HTML version deleted]] > >>> > >>> ______________________________________________ > >>> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > >>> 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. > >> > >> ______________________________________________ > >> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > >> 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. > > > >David Winsemius > >Alameda, CA, USA > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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]]