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