在变量中使用表达式

时间:2014-03-26 16:18:48

标签: r variables expression

我试图用上标标记R中的情节。例如,我有一个名为label的变量:

>label <- colnames(tmp.df);
>label
[1] "ColumnA" "Volume 100mm3", "ColumnC", etc.

我想要&#34; 3&#34;在&#34;卷100mm3&#34;作为我标题标签的上标。我不能使用类似的东西:

label <- c("ColumnA", expression(paste('Volume 100mm'^'3')), "ColumnC");

因为tmp.df中列名的排序可能会在运行之间发生变化。那我怎么能解决这个问题呢?

3 个答案:

答案 0 :(得分:1)

您可以通过

找到 mm 的那个
ind <- grep("mm",label)
splt <- strsplit(label[ind], "mm")[[1]]

然后通过

注入表达式
label[ind] <- parse(text=sprintf("paste('%smm'^'%s')",splt[1],splt[2]))

如果有多个字符串表明需要表达式,那么应该可以直接调整它。

答案 1 :(得分:1)

您可以使用bquote*连接&#34;第100卷&#34;到&#34; mm ^ 3&#34;没有空间。如果您想要空格,可以使用~代替*

plot(1:10, main = bquote(.("Volume 100") * mm^3))

enter image description here

答案 2 :(得分:0)

如何将Unicode字符用于立方体'SUPERSCRIPT THREE'(U + 00B3)?在R中,这将被转义为'100mm \ u00B3',或者如果这是来自数据文件,只需在文件中直接使用unicode字符。