The NEWS for R 4.0.0 says "R now uses a stringsAsFactors = FALSE default, and hence by default no longer converts strings to factors in calls to data.frame() and read.table()." This seems to have been implemented by setting options(stringsAsFactors = FALSE) in the main R profile. However, setting options(stringsAsFactors = NULL) reverts to the same behavior as the old options(stringsAsFactors = TRUE). Is this intentional? Duncan Murdoch
>>>>> Duncan Murdoch >>>>> on Sun, 12 Apr 2020 08:57:14 -0400 writes:> The NEWS for R 4.0.0 says "R now uses a stringsAsFactors = FALSE > default, and hence by default no longer converts strings to factors in > calls to data.frame() and read.table()." > This seems to have been implemented by setting options(stringsAsFactors > = FALSE) in the main R profile. However, setting > options(stringsAsFactors = NULL) > reverts to the same behavior as the old options(stringsAsFactors = > TRUE). Is this intentional? No! Thanks a lot for testing R 4.0.0 alpha/beta, noticing and alerting us about it. This will be changed ASAP. ... and it will benefit the whole R user community if quite a few good R users (as most readers of 'R-devel') would start using 'R 4.0.0 beta' routinely now --- thanks a lot in advance! Martin
Hello, I also want to report 2 missed cases of stringsAsFactors=TRUE in base: 1. grid.expand() still uses hard stringsAsFactors=TRUE in its arguments. 2. as.data.frame.table() also keeps factors after conversion from table.>>>>>> Duncan Murdoch >>>>>> on Sun, 12 Apr 2020 08:57:14 -0400 writes: > > > The NEWS for R 4.0.0 says "R now uses a stringsAsFactors = FALSE > > default, and hence by default no longer converts strings to factors in > > calls to data.frame() and read.table()." > > > This seems to have been implemented by setting options(stringsAsFactors > > = FALSE) in the main R profile. However, setting > > > options(stringsAsFactors = NULL) > > > reverts to the same behavior as the old options(stringsAsFactors > > TRUE). Is this intentional? > > >No! Thanks a lot for testing R 4.0.0 alpha/beta, noticing and >alerting us about it. > >This will be changed ASAP. > >... and it will benefit the whole R user community if quite a >few good R users (as most readers of 'R-devel') would start >using 'R 4.0.0 beta' routinely now --- thanks a lot in advance! > >Martin > >______________________________________________ >R-devel at r-project.org mailing list >https://stat.ethz.ch/mailman/listinfo/r-devel
Further, in addition to the `val <- FALSE` patch a few hours ago by Martin, the line after should also be changed - if(!is.logical(val) || is.na(val) || length(val) != 1L) + if(!is.logical(val) || length(val) != 1L || is.na(val)) ## Consider Sys.setenv("_R_CHECK_LENGTH_1_LOGIC2_" = "TRUE") options(stringsAsFactors = c(TRUE, FALSE)) default.stringsAsFactors() # correct error message On Mon, 13 Apr 2020 at 18:02, Martin Maechler <maechler at stat.math.ethz.ch> wrote:> > >>>>> Duncan Murdoch > >>>>> on Sun, 12 Apr 2020 08:57:14 -0400 writes: > > > The NEWS for R 4.0.0 says "R now uses a stringsAsFactors = FALSE > > default, and hence by default no longer converts strings to factors in > > calls to data.frame() and read.table()." > > > This seems to have been implemented by setting options(stringsAsFactors > > = FALSE) in the main R profile. However, setting > > > options(stringsAsFactors = NULL) > > > reverts to the same behavior as the old options(stringsAsFactors > > TRUE). Is this intentional? > > > No! Thanks a lot for testing R 4.0.0 alpha/beta, noticing and > alerting us about it. > > This will be changed ASAP. > > ... and it will benefit the whole R user community if quite a > few good R users (as most readers of 'R-devel') would start > using 'R 4.0.0 beta' routinely now --- thanks a lot in advance! > > Martin > > ______________________________________________ > R-devel at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel