On 12/29/20 3:45 PM, Jeff Newmiller wrote:
This doesn't sound right. When you use expression() it freezes the syntax as the expression you wrote, so
expression(paste(x^2,"[", m^2, "]")) is a perfectly valid plotmath expression. The
expression() call is _not_ an "inverse" of paste because the presence of paste is supporting the
inclusion of non-syntactic elements in this context... it is handled by plotmath, not by actually executing
paste(), and expression is delaying evaluation to give plotmath a chance to combine the sub expressions
including character literals without as.character or a subsequent eval().
Code that invokes paste on an expression seems unwise to me... but not the
other way around.
There are three instances of `expression(paste(...))` in the examples
for plotmath, so Heiberger's perspective was not adopted by the S/R
plotmath authors. It behaves a bit like `paste0` inside plotmath. In my
opinion its use in plotmath expressions makes the code less readable
than if one were to just use "*" as a concatenation operator. The
example in ?plotmath :
main = expression(paste(plain(sin) * phi, " and ",
plain(cos) * phi))
... could be better expressed as:
main = expression( plain(sin) * phi * " and " * plain(cos) * phi )
The usual `paste` has a "sep" and "collapse" arguments. The plotmath
`paste` function does not honor those arguments.
--
David.
On December 29, 2020 3:05:21 PM PST, Bert Gunter <bgunter.4...@gmail.com> wrote:
... yes, more specifically:
(from ?paste)
"paste converts its arguments (*via* as.character
<http://127.0.0.1:33923/help/library/base/help/as.character>) to
character
strings, and concatenates them (separating them by the string given by
sep).
"
More to the point, I would say, is that if you need to manipulate
expressions or other language objects you should live in the world of
language objects, rather than converting them back and forth to
character
strings. But this may be off topic and in the weeds; for which, if
so,
apologies.
Cheers,
Bert
Bert Gunter
"The trouble with having an open mind is that people keep coming along
and
sticking things into it."
-- Opus (aka Berkeley Breathed in his "Bloom County" comic strip )
On Tue, Dec 29, 2020 at 2:57 PM Richard M. Heiberger <r...@temple.edu>
wrote:
It is a generalization.
Don't use paste() and expression() together because paste is a
sort-of
inverse to expression.
In this example I start by typing several characters, and the result
of paste(expression()) is a string containing the characters I
initially typed.
expression(12^6)
expression(12^6)
paste(expression(12^6))
[1] "12^6"
expression(12^6)
paste(expression(12^6))
plot(0:1, 0:1)
text(.1, .4, labels=paste(expression(12^6)))
text(.1, .3, labels=expression(12^6))
On Tue, Dec 29, 2020 at 4:15 PM Jeff Newmiller
<jdnew...@dcn.davis.ca.us>
wrote:
Why not? Is that a generalization, or specific to this case?
On December 29, 2020 7:54:22 AM PST, "Richard M. Heiberger" <
r...@temple.edu> wrote:
paste() is the problem. don’t use paste with expression()
On Tue, Dec 29, 2020 at 10:50 Sorkin, John
<jsor...@som.umaryland.edu>
wrote:
Colleagues,
I would like to create a number (stored in the variable x) to
the
number
with the exponent of, i.e. the number to the sixth power. The
code I
have
tried, pasted below does not work.
# create plot
plot(x=0.2,y=0.2,xlim=c(0,1),ylim=c(0,1))
PNotSusp=0.69
# Create a string containing the base and exponent.
x <- 0.95123
# Convert the base to text and add the exponent of 6
mylab <- expression(paste(" ",character(x)^6))
# Add the text to the plot
text(0.4,0.8,labels=paste(PNotSusp,"=\n",mylab))
I hope someone can show me how to create the text string I need.
Thank you,
John
John David Sorkin M.D., Ph.D.
Professor of Medicine
Chief, Biostatistics and Informatics
University of Maryland School of Medicine Division of
Gerontology and
Geriatric Medicine
Baltimore VA Medical Center
10 North Greene Street
<
https://www.google.com/maps/search/10+North+Greene+Street?entry=gmail&source=g
GRECC (BT/18/GR)
Baltimore, MD 21201-1524
(Phone) 410-605-7119
(Fax) 410-605-7913 (Please call phone number above prior to
faxing)
______________________________________________
R-help@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@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.
--
Sent from my phone. Please excuse my brevity.
______________________________________________
R-help@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@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.