在 substitute() 中评估作为字符串给出的表达式
Evaluate an expression given as a string inside substitute()
我想计算 substitute()
中作为字符串给出的表达式,但我没有得到预期的输出(x 轴标签 "My index"... 带有下标) :
mystrng <- "index[1]" # string
plot(0~1, xlab = substitute("My"~ind, list(ind = mystrng)))
plot(0~1, xlab = substitute("My"~ind, list(ind = parse(text = mystrng))))
plot(0~1, xlab = eval(substitute("My"~ind, list(ind = parse(text = mystrng)))))
注:
1) 没有substitute()
,可以使用parse(text = mystrng)
。另见 here。正如这个 link 也揭示的那样,不应该使用字符串,但是,例如 quote(index[1])
可以与上面的第一个 plot()
调用一起使用。我只是对如何处理字符串感兴趣。
2) 最后一个 plot()
调用试验的灵感来自 ?substitute
3) 理想情况下,如果 mystrng
包含空格,如 "My index[1]"
,该解决方案也有效
我想计算 substitute()
中作为字符串给出的表达式,但我没有得到预期的输出(x 轴标签 "My index"... 带有下标) :
mystrng <- "index[1]" # string
plot(0~1, xlab = substitute("My"~ind, list(ind = mystrng)))
plot(0~1, xlab = substitute("My"~ind, list(ind = parse(text = mystrng))))
plot(0~1, xlab = eval(substitute("My"~ind, list(ind = parse(text = mystrng)))))
注:
1) 没有substitute()
,可以使用parse(text = mystrng)
。另见 here。正如这个 link 也揭示的那样,不应该使用字符串,但是,例如 quote(index[1])
可以与上面的第一个 plot()
调用一起使用。我只是对如何处理字符串感兴趣。
2) 最后一个 plot()
调用试验的灵感来自 ?substitute
3) 理想情况下,如果 mystrng
包含空格,如 "My index[1]"