You have four character vectors in your data frame; those return non-finite ranges. plot(test[sapply(test, class)!="character"]) plots the non-character columns. S Ellison ________________________________________ From: R-help [r-help-bounces at r-project.org] on behalf of Rasmus Liland [jral at posteo.no] Sent: 24 June 2020 14:12 To: R-help Subject: Re: [R] version plot problem ============== EXTERNAL EMAIL ============== On 2020-06-24 10:03 +0000, PIKAL Petr wrote:> Dear all > > I have strange problem with plotting data.frame.Dear Petr, After fending off the iso-8859-2 encoding, continuing using my regular Unicode encoding, I was able to reproduce the error 3.6.3 (sessionInfo and version at the end of the email). Dropping the columns "N?zev Anal?zy", "Kontrolor", "Prac", and "Vzorek" indeed makes the error go away ... Best, Rasmus 3.6.3: > sessionInfo() R version 3.6.3 (2020-02-29) Platform: x86_64-pc-linux-gnu (64-bit) Running under: Arch Linux Matrix products: default BLAS: /usr/lib/libblas.so.3.9.0 LAPACK: /usr/lib/liblapack.so.3.9.0 locale: [1] LC_CTYPE=en_GB.utf8 LC_NUMERIC=C [3] LC_TIME=en_DK.utf8 LC_COLLATE=en_GB.utf8 [5] LC_MONETARY=nb_NO.utf8 LC_MESSAGES=en_GB.utf8 [7] LC_PAPER=nb_NO.utf8 LC_NAME=C [9] LC_ADDRESS=C LC_TELEPHONE=C [11] LC_MEASUREMENT=nb_NO.utf8 LC_IDENTIFICATION=C attached base packages: [1] stats graphics grDevices utils datasets methods base loaded via a namespace (and not attached): [1] compiler_3.6.3 > version _ platform x86_64-pc-linux-gnu arch x86_64 os linux-gnu system x86_64, linux-gnu status major 3 minor 6.3 year 2020 month 02 day 29 svn rev 77875 language R version.string R version 3.6.3 (2020-02-29) nickname Holding the Windsock 4.0.2: > sessionInfo() R version 4.0.2 (2020-06-22) Platform: x86_64-pc-linux-gnu (64-bit) Running under: Arch Linux Matrix products: default BLAS: /usr/lib/libblas.so.3.9.0 LAPACK: /usr/lib/liblapack.so.3.9.0 locale: [1] LC_CTYPE=en_GB.utf8 LC_NUMERIC=C [3] LC_TIME=en_DK.utf8 LC_COLLATE=en_GB.utf8 [5] LC_MONETARY=nb_NO.utf8 LC_MESSAGES=en_GB.utf8 [7] LC_PAPER=nb_NO.utf8 LC_NAME=C [9] LC_ADDRESS=C LC_TELEPHONE=C [11] LC_MEASUREMENT=nb_NO.utf8 LC_IDENTIFICATION=C attached base packages: [1] stats graphics grDevices utils datasets methods base loaded via a namespace (and not attached): [1] compiler_4.0.2 > version _ platform x86_64-pc-linux-gnu arch x86_64 os linux-gnu system x86_64, linux-gnu status major 4 minor 0.2 year 2020 month 06 day 22 svn rev 78730 language R version.string R version 4.0.2 (2020-06-22) nickname Taking Off Again ______________________________________________ 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. =============================================================================================WARNING - EXTERNAL: This email originated from outside of LGC. Do not click any links or open any attachments unless you trust the sender and know that the content is safe ============================================================================================= ******************************************************************* This email and any attachments are confidential. Any use...{{dropped:8}}
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? Best regards. Petr> -----Original Message----- > From: R-help <r-help-bounces at r-project.org> On Behalf Of Stephen Ellison > Sent: Wednesday, June 24, 2020 6:44 PM > To: Rasmus Liland <jral at posteo.no>; R-help <r-help at r-project.org> > Subject: Re: [R] version plot problem > > You have four character vectors in your data frame; those returnnon-finite> ranges. > > plot(test[sapply(test, class)!="character"]) > > plots the non-character columns. > > S Ellison > > ________________________________________ > From: R-help [r-help-bounces at r-project.org] on behalf of Rasmus Liland > [jral at posteo.no] > Sent: 24 June 2020 14:12 > To: R-help > Subject: Re: [R] version plot problem > > ==============> EXTERNAL EMAIL > ==============> > On 2020-06-24 10:03 +0000, PIKAL Petr wrote: > > Dear all > > > > I have strange problem with plotting data.frame. > > Dear Petr, > > After fending off the iso-8859-2 encoding, continuing using my regular > Unicode encoding, I was able to reproduce the error 3.6.3 (sessionInfo and > version at the end of the email). > > Dropping the columns "N?zev Anal?zy", > "Kontrolor", "Prac", and "Vzorek" indeed makes the error go away ... > > Best, > Rasmus > > 3.6.3: > > > sessionInfo() > R version 3.6.3 (2020-02-29) > Platform: x86_64-pc-linux-gnu (64-bit) > Running under: Arch Linux > > Matrix products: default > BLAS: /usr/lib/libblas.so.3.9.0 > LAPACK: /usr/lib/liblapack.so.3.9.0 > > locale: > [1] LC_CTYPE=en_GB.utf8 LC_NUMERIC=C > [3] LC_TIME=en_DK.utf8 LC_COLLATE=en_GB.utf8 > [5] LC_MONETARY=nb_NO.utf8 LC_MESSAGES=en_GB.utf8 > [7] LC_PAPER=nb_NO.utf8 LC_NAME=C > [9] LC_ADDRESS=C LC_TELEPHONE=C > [11] LC_MEASUREMENT=nb_NO.utf8 LC_IDENTIFICATION=C > > attached base packages: > [1] stats graphics grDevices utils datasets methodsbase> > loaded via a namespace (and not attached): > [1] compiler_3.6.3 > > version > _ > platform x86_64-pc-linux-gnu > arch x86_64 > os linux-gnu > system x86_64, linux-gnu > status > major 3 > minor 6.3 > year 2020 > month 02 > day 29 > svn rev 77875 > language R > version.string R version 3.6.3 (2020-02-29) > nickname Holding the Windsock > > 4.0.2: > > > sessionInfo() > R version 4.0.2 (2020-06-22) > Platform: x86_64-pc-linux-gnu (64-bit) > Running under: Arch Linux > > Matrix products: default > BLAS: /usr/lib/libblas.so.3.9.0 > LAPACK: /usr/lib/liblapack.so.3.9.0 > > locale: > [1] LC_CTYPE=en_GB.utf8 LC_NUMERIC=C > [3] LC_TIME=en_DK.utf8 LC_COLLATE=en_GB.utf8 > [5] LC_MONETARY=nb_NO.utf8 LC_MESSAGES=en_GB.utf8 > [7] LC_PAPER=nb_NO.utf8 LC_NAME=C > [9] LC_ADDRESS=C LC_TELEPHONE=C > [11] LC_MEASUREMENT=nb_NO.utf8 LC_IDENTIFICATION=C > > attached base packages: > [1] stats graphics grDevices utils datasets methodsbase> > loaded via a namespace (and not attached): > [1] compiler_4.0.2 > > version > _ > platform x86_64-pc-linux-gnu > arch x86_64 > os linux-gnu > system x86_64, linux-gnu > status > major 4 > minor 0.2 > year 2020 > month 06 > day 22 > svn rev 78730 > language R > version.string R version 4.0.2 (2020-06-22) > nickname Taking Off Again > > ______________________________________________ > 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. > > > ================================================================> ============================> WARNING - EXTERNAL: This email originated from outside of LGC. Do notclick> any links or open any attachments unless you trust the sender and knowthat> the content is safe > ================================================================> ============================> > > ***************************************************************** > ** > This email and any attachments are confidential. Any use...{{dropped:8}} > > ______________________________________________ > 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.
>>>>> 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