[R] version plot problem
Martin Maechler
m@ech|er @end|ng |rom @t@t@m@th@ethz@ch
Tue Jun 30 11:35:01 CEST 2020
>>>>> PIKAL Petr
>>>>> on Thu, 25 Jun 2020 14:45:09 +0000 writes:
> Thanks.
> I try to spread R to some other people and I use 4.0.0 - version.string R
> Under development (unstable) (2020-03-08 r77917) nickname Unsuffered
> Consequences whereas they use R 3.6.3
> version.string R version 3.6.3 (2020-02-29) nickname Holding the
> Windsock
> With artificial data frame both behave with the same error
> dat <- data.frame(a=letters[1:5], b=1:5)
> dat$a <- as.character(dat$a)
> plot(dat)
> Error in plot.window(...) : need finite 'xlim' values
> In addition: Warning messages:
> 1: In xy.coords(x, y, xlabel, ylabel, log) : NAs introduced by coercion
> 2: In min(x) : no non-missing arguments to min; returning Inf
> 3: In max(x) : no non-missing arguments to max; returning -Inf
> So far so good.
> But with original data with **character** columns
> dput(head(mok))
> mok <- structure(list(a = c("Kalcinát A", "Kalcinát A", "Kalcinát A",
> "Kalcinát A", "Kalcinát A", "Kalcinát A"), b = c("TB", "TB",
> "TB", "TB", "TB", "TB"), c = c("6101B", "6101B", "6101B", "6101B",
> "6101B", "6101B"), d = structure(c(1590624000, 1590624000, 1590537600,
> 1590537600, 1590537600, 1590537600), class = c("POSIXct", "POSIXt"
> ), tzone = "UTC"), e = structure(c(1590649200, 1590634800, 1590620400,
> 1590606000, 1590591600, 1590577200), class = c("POSIXct", "POSIXt"
> ), tzone = "UTC"), f = structure(c(1590649200, 1590634800, 1590620400,
> 1590606000, 1590591600, 1590577200), class = c("POSIXct", "POSIXt"
> ), tzone = "UTC"), g = c("BAROTOVÁ", "KRÁTKÁ", "KRÁTKÁ", "HOLASOVÁ",
> "HOLASOVÁ", "BAROTOVÁ"), h = c(239.4, 221, 190.3, 215.7, 241.4,
> 214.8), i = c(48.7, 55.6, 52.9, 50.1, 46.6, 54.4), j = c(94.2,
> 93, 92.4, 94.2, 96.3, 94.4), k = c(0.8, 1, 1, 0.8, 0.7, 0.8)), row.names =
> c(NA,
> 6L), class = "data.frame")
> PLOT WORKS in R 400 but not in R 363??????
> plot(mok)
> Why it works in R400??? How should I explain it?
(it's "R 4.0.0" , here spaces are relevant I think)
Well, new versions of R are always better than previous ones
(even though, yes, rarely sometimes bugs are introduced).
and you have heard that R 4.0.0 came with *many* new features, right ?
In this case the long NEW FEATURES section in the
NEWS | NEWS.pdf | NEWS.html files contained the entry
• data.matrix() now converts character columns to factors and from
this to integers.
and this contains the answer to your question, as
plot(mok) |-> plot.data.frame(mok) |-> pairs(data.matrix(mok))
and data.matrix(mok) in R 3.6.3 gives 4 warnings and ends in a
character matrix.
--
And yes, the above new feature was related and made particularly
sense with the important user-visible stringsAsFactors change
in R 4.0.0; see also the corresponding R blog (by Kurt Hornik) :
https://developer.r-project.org/Blog/public/2020/02/16/stringsasfactors/
Martin Maechler
R Core team and ETH Zurich
More information about the R-help
mailing list