如何索引R表达式中的希腊符号
下面是一个简单的例子:如何索引R表达式中的希腊符号,r,R,下面是一个简单的例子: ylab<-expression(paste(beta, "/ml")) plot(1:10, ylab=ylab) ylabfirst-offbeta应该用双引号引起来,所以它是一个字符串,而不是@42所指出的基函数- 否则,您可以将字符串粘贴在一起,然后像这样对其求值 unit<-"beta" #note double quotes txt <- paste0("expression(",unit,"~'/ml')") #built express
ylab<-expression(paste(beta, "/ml"))
plot(1:10, ylab=ylab)
ylabfirst-offbeta
应该用双引号引起来,所以它是一个字符串,而不是@42所指出的基函数-
否则,您可以将字符串粘贴在一起,然后像这样对其求值
unit<-"beta" #note double quotes
txt <- paste0("expression(",unit,"~'/ml')") #built expression as string
ylab<-eval(parse(text=txt)) #evaluate the expression with parse
plot(1:10, ylab=ylab)
unitUpdate:似乎希望将一个变量从表达式外部传递到在plot
调用外部构造的表达式类变量中。这似乎比使用eval(parse(text=paste(…)
构造要简单得多:
unit=quote(beta)
ylab<-bquote(.(unit)/ml)
plot(1:10, ylab=ylab)
我最初怀疑的问题的答案是被问到的,因为这是我在R的早期努力解决的一个(实际上是两个)问题。我猜你想构造记号标签而不是轴标签,你想让它们显示为希腊字母或其他plotmath
-y结构,但使用升序“索引”替换值。第二个请求要求使用substitute
或bquote
,而第一个请求要求记住使用par
参数抑制y轴刻度和标签,然后使用轴
plot(1:10, ylab=ylab,yaxt="n")
# Now create "horizontally aligned" (using las=2) beta-value tick labels
axis(2, at=1:10,
labels=as.expression(lapply( 1:10, function(x) bquote( beta == .(x)))) ,
las=2)
<> > <代码>表达式>代码> > bQue>代码> -ED结果是我在更早的答案中找到的(我),我认为只是标记为一个副本,但是它没有涉及任何绘图,所以我决定认为它是“部分重叠”。.如果后三个命令没有出现错误,则表示您的工作区中有一个名为beta
的数据对象。您是否真的试图在记号处创建文本标签?否则,我不会看到任何我称之为“索引”的内容.@42-不一定是因为beta是base中的一个base函数;因此不可能出现错误,对吧。但OP似乎仍然不太可能真正想要创建一个名为unit
的函数,该函数需要两个参数。我对目标的澄清要求仍然存在。有关粘贴
和表达式的相关问题,请参阅
@42,你能重现你这边的问题吗?如果不能,问题可能在我本地。我喜欢使用quote
和bquote
来解决这个问题。当unit
是一个符号向量(例如,beta、mu、phi)unit时,你如何修改
unit=as.name('beta')
plot(1:10, ylab=ylab,yaxt="n")
# Now create "horizontally aligned" (using las=2) beta-value tick labels
axis(2, at=1:10,
labels=as.expression(lapply( 1:10, function(x) bquote( beta == .(x)))) ,
las=2)