[R] ggplot error of "`data` must be a data frame, or other object coercible by `fortify()`, not an S3 object with class rxlsx"

Andrew Simmons @kw@|mmo @end|ng |rom gm@||@com
Thu Aug 26 21:17:42 CEST 2021


Hello,


Package 'officer' has a function 'read_xlsx', so when you attach those
packages in that order, it returns 'read_xlsx' from package 'officer'
instead of 'readxl'. To avoid the confusion, instead of

eth <- read_xlsx("c:/temp/eth.xlsx")

try

eth <- readxl::read_xlsx("c:/temp/eth.xlsx")

which will always refer to the correct function. I can't seem to reproduce
the original error you have, I tried something like:

openxlsx::write.xlsx(data.frame(x = 1:26, y = stats::rnorm(26)), FILE <-
tempfile())
eth <- readxl::read_xlsx(FILE)
eth2 <- as.data.frame(eth)
ggplot2::ggplot(eth2, ggplot2::aes(x = x, y = y))


unlink(FILE)

which just worked as expected.

On Thu, Aug 26, 2021 at 3:03 PM Kai Yang via R-help <r-help using r-project.org>
wrote:

>  Hi all,
> I found something, but I don't know why it happen.
> when I submitted the following code, the Eth is data frame. I can see 14
> obs. of 2 variables
> library(readxl)
> library(ggplot2)
> eth <- read_xlsx("c:/temp/eth.xlsx")
>
>
> but when I add more package (see below,) the Eth is "List of 1"
> library(readxl)
> library(ggplot2)
> library(dplyr)
> library(magrittr)
> library(knitr)
> library(xtable)
> library(flextable)
> library(officer)
> eth <- read_xlsx("c:/temp/eth.xlsx")
>
> But I need those package in future. Is there a way to fix the problem?
> Thanks,
> Kai    On Thursday, August 26, 2021, 11:37:53 AM PDT, Kai Yang via R-help <
> r-help using r-project.org> wrote:
>
>   Hi All,
> 1. the eth is a data frame (not sure that based on error message?) that I
> load it from excel file. Here is the code: eth <-
> read_xlsx("c:/temp/eth.xlsx")
> 2. I try to use the code to convert eth into eth2, but I got error message:
> > eth2 <- data.frame(eth)
> Error in as.data.frame.default(x[[i]], optional = TRUE, stringsAsFactors =
> stringsAsFactors) :
>   cannot coerce class ‘"rxlsx"’ to a data.frame
>
> So, it seems the data.frame can not do this data convert? Do you know
> which statement/function can do this?
>
>
> thank you for your help.
>
>     On Thursday, August 26, 2021, 09:33:51 AM PDT, Avi Gross via R-help <
> r-help using r-project.org> wrote:
>
>  Kai,
>
> The answer is fairly probable to find  if you examine your variable "eth"
> as that is the only time you are being asked to provide the argument as in
> "ggplot(data=eth, ..) ...)
>
> As the message states, it expects that argument to be a data frame or
> something it can change into a data.frame. What you gave it probably is an
> object meant to represent an EXCEL file or something. You may need to
> extract a data.frame (or tibble or ...) from it before passing that to
> ggplot.
>
> Avi
>
> -----Original Message-----
> From: R-help <r-help-bounces using r-project.org> On Behalf Of Kai Yang via
> R-help
> Sent: Thursday, August 26, 2021 11:53 AM
> To: R-help Mailing List <r-help using r-project.org>
> Subject: [R] ggplot error of "`data` must be a data frame, or other object
> coercible by `fortify()`, not an S3 object with class rxlsx"
>
> Hello List,
> I got an error message when I submit the code below ggplot(eth,
> aes(ymax=ymax, ymin=ymin, xmax=4, xmin=3, fill=ethnicity)) +  geom_rect()
> +  coord_polar(theta="y")  +  xlim(c(2, 4)  )
>
> Error: `data` must be a data frame, or other object coercible by
> `fortify()`, not an S3 object with class rxlsx
>
>
> I checked the syntax. But I can  not find any error on my code. Can you
> help me to find where is the problem?
>
> Thanks
>
>     [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help using 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 using 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]]
>
> ______________________________________________
> R-help using 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]]
>
> ______________________________________________
> R-help using 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]]



More information about the R-help mailing list