Dear friends - I have some old data of chemical results and want to annotate
the points with chemical formula. If I just do
ID <- c("HCl 7","HCl 5.25","HCl 3.5","HCL
7 no Na","HCl 3.5 No Na",
"HSO4 7 no Na",
"HNO3 7 No Na")
I can make a data.frame like
DD <- data.frame(x=1:7,ID)
and plotting works fine.
But if I try to format sulfuric acid and nitric acid like
ID <- c("HCl 7","HCl 5.25","HCl 3.5","HCL
7 no Na","HCl 3.5 No Na",
expression(paste(HSO[4]," 7 no Na")),
expression(paste(HNO[3]," 7 No Na")))
DD <- data.frame(x=1:7,ID)
Elicits an error
Error in as.data.frame.default(x[[i]], optional = TRUE) :
cannot coerce class '"expression"' to a data.frame
and plotting is prohibited - so how is this bypassed?
I'm on Windows 10,
R version 3.6.1 (2019-07-05)
All best wishes
Troels Ring, MD
Aalborg, Denmark
This email has been scanned by BullGuard antivirus protection.
For more info visit www.bullguard.com
<http://www.bullguard.com/tracking.aspx?affiliate=bullguard&buyaffiliate=smt
p&url=/>
[[alternative HTML version deleted]]
William Dunlap
2020-Mar-21 16:26 UTC
[R] cannot coerce class '"expression"' to a data.frame
Try using the I() function in the call to data.frame. E.g.,> d <- data.frame(X=1:3, Y=1:3, Substance=I(expression(H[2]*O, H[2] * O[2],H*S*O[4])))> with(d, {plot(X,Y,type="n",xlim=c(0,4)); text(X, Y, Substance)})Bill Dunlap TIBCO Software wdunlap tibco.com On Sat, Mar 21, 2020 at 1:45 AM Troels Ring <tring at gvdnet.dk> wrote:> Dear friends - I have some old data of chemical results and want to > annotate > the points with chemical formula. If I just do > > ID <- c("HCl 7","HCl 5.25","HCl 3.5","HCL 7 no Na","HCl 3.5 No Na", > > "HSO4 7 no Na", > > "HNO3 7 No Na") > > I can make a data.frame like > > DD <- data.frame(x=1:7,ID) > > > > and plotting works fine. > > But if I try to format sulfuric acid and nitric acid like > > ID <- c("HCl 7","HCl 5.25","HCl 3.5","HCL 7 no Na","HCl 3.5 No Na", > > expression(paste(HSO[4]," 7 no Na")), > > expression(paste(HNO[3]," 7 No Na"))) > > > > DD <- data.frame(x=1:7,ID) > > Elicits an error > > Error in as.data.frame.default(x[[i]], optional = TRUE) : > > cannot coerce class '"expression"' to a data.frame > > and plotting is prohibited - so how is this bypassed? > > > > I'm on Windows 10, > > R version 3.6.1 (2019-07-05) > > > > All best wishes > > Troels Ring, MD > > Aalborg, Denmark > > > This email has been scanned by BullGuard antivirus protection. > For more info visit www.bullguard.com > < > http://www.bullguard.com/tracking.aspx?affiliate=bullguard&buyaffiliate=smt > p&url=/ > <http://www.bullguard.com/tracking.aspx?affiliate=bullguard&buyaffiliate=smtp&url=/>> > > > [[alternative HTML version deleted]] > > ______________________________________________ > 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. >[[alternative HTML version deleted]]