2014-03-26 74 views
1

我想用上標標註R中的一個圖。例如,我有一個變量,名爲標籤:在變量中使用表達式

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

我想在「卷100立方毫米」在我的陰謀標籤上標有「3」。我不能使用類似:

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

因爲tmp.df列名的順序可以從運行改變運行。那麼我該如何解決這個問題呢?

回答

0

剛剛使用Unicode字符的立方體'SUPERSCRIPT THREE'(U + 00B3)怎麼樣?在R中,這將被轉義爲'100mm \ u00B3',或者如果這來自數據文件,則直接在文件中使用unicode字符。

1

你可以找到

ind <- grep("mm",label) 
splt <- strsplit(label[ind], "mm")[[1]] 

了一個與毫米,然後通過

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

注入表達如果有多個字符串,指示表達的需要,那麼它應該直接適應這一點。

1

您可以使用bquote*將「Volume 100」連接到「mm^3」而沒有空格。如果你需要一個空間,你可以使用~而不是*

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

enter image description here

相關問題