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

Avi Gross @v|gro@@ @end|ng |rom ver|zon@net
Fri Aug 27 01:07:19 CEST 2021


This illustrates many things but in particular, why there is a difference between saying you tried:

 

    class(eth)

 

And saying the function you (think you) called is documented to return a data.frame.

 

Just typing something asking for the class would rapidly have shown it was not a data.frame and also what it was. True, having multiple packages in some order overlay each other is a bit subtle for some and I am glad quite a few people here noticed it. 

 

It may indeed make sense to more fully specify package::function notation in anything you let others use as they may indeed load more packages …

 

From: John C Frain <frainj using gmail.com> 
Sent: Thursday, August 26, 2021 3:17 PM
To: Kai Yang <yangkai9999 using yahoo.com>
Cc: r-help using r-project.org; Avi Gross <avigross using verizon.net>
Subject: Re: [R] ggplot error of "`data` must be a data frame, or other object coercible by `fortify()`, not an S3 object with class rxlsx"

 

officer redefines the read_xlsx command.  You should have got a message to that effect when you loaded the officer package.  You can use the version from the readxl package with

 

readxl::read_xlsx()  command.




John C Frain

3 Aranleigh Park

Rathfarnham
Dublin 14
Ireland
www.tcd.ie/Economics/staff/frainj/home.html <http://www.tcd.ie/Economics/staff/frainj/home.html> 

https://jcfrain.wordpress.com/

https://jcfraincv19.wordpress.com/


mailto:frainj using tcd.ie <mailto:frainj using tcd.ie> 
mailto:frainj using gmail.com <mailto:frainj using gmail.com> 

 

 

On Thu, 26 Aug 2021 at 20:04, Kai Yang via R-help <r-help using r-project.org <mailto: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 <mailto: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 <mailto: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 <mailto: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 <mailto: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 <mailto: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 <mailto: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 <mailto: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 <mailto: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