我想在R中的图中使用“湿地中的二氧化碳排放”标题,而二氧化碳中的2则是下标,该区域的值(此处:“湿地”)包含在名为“变量”的变量中。区域”。
region = "wetlands"
plot (1, 1, main=expression(CO[2]~paste(" emissions in ", region)))
问题是,不是粘贴变量的值,而是粘贴变量的名称。这给出了“区域内的二氧化碳排放”而不是“湿地中的二氧化碳排放”。我也尝试过:
region="wetlands"
plot (1,1,main=paste(expression(CO[2]), "emissions in", region))
但是这里没有下标,标题是:“湿地的CO [2]排放”。
以某种方式可以将变量的值变为表达式吗?
感谢您的帮助,
斯文
答案 0 :(得分:13)
在为plothmath样式的注释生成表达式时,无需使用paste()
。这很好用:
region <- "foo"
plot (1, 1, main = bquote(CO[2] ~ "emissions in" ~ .(region)))
,并提供:
使用paste()
只是妨碍了。
Nb:您必须引用"in"
,因为解析器会将其作为R语法的关键部分来抓取。
答案 1 :(得分:7)
您可以使用替代:
mn <- substitute(CO[2]~ "emissions in" ~ region, list(region="wetlands") )
plot(1, 1, main=mn )
来自?substitute
帮助文件:
替代品的典型用途是为其创建信息标签 数据集和图表。下面的myplot示例显示了一个简单的用法 这个设施。它使用deparse函数和替换创建 绘图的标签,它们是实际的字符串版本 函数myplot的参数。
答案 2 :(得分:2)
对于您的情况,从重复链接中的一个答案中窃取:
x <- "OberKrain"
plot(1:10, 1:10, main = bquote(paste(CO[2], " in ", .(x))))