2017-08-04 31 views
2

我有一長串列名,我想在facet_grid中使用它。我想選擇一些列名稱,並把+作爲facet_grid函數要求。取消列名並在facet_grid中使用

我試過這個與mtcars,但無法弄清楚爲什麼unlistpaste不起作用。

names=paste(unlist(names(mtcars)[c(1,3,5)]),sep='+') 

library(ggplot2) 
ggplot(mtcars, aes("", hp)) + 
    geom_boxplot(width=0.7, position=position_dodge(0.7)) + 
    theme_bw() + 
    facet_grid(. ~ names,switch = 'both',labeller = label_both) 

錯誤combine_vars(數據,則params plot_env $,COLS,滴=參數$滴) :至少一層必須包含用於磨製

回答

3

您可以使用所有變量字符串在facet_grid之內,但是您必須提供整個公式(包括代字號)作爲字符串。

names <- paste(c(". ~ ", names(mtcars)[c(1,3,5)]), collapse='+') 

ggplot(mtcars, aes("", hp)) + 
    geom_boxplot(width=0.7, position=position_dodge(0.7)) + 
    theme_bw() + 
    facet_grid(names, switch = 'both', labeller = label_both) 

enter image description here

+0

感謝布賴恩。你的解決方案很優雅! – Alexander

相關問題