2012-06-14 59 views
28

我有一個名爲response的變量。 此變量將被傳遞到facet_wrap()在ggplot包使用R在ggplot中傳遞字符串變量facet_wrap()使用R

response<-"job" 

當我直接指定在facet_wrap變量()

例如

ggplot(data,aes(job,fill=class)) + geom_bar() +facet_wrap(~job) 

它給需要情節

但當我指定響應變量在facet_wrap()

ggplot(data,aes(job,fill=reponse))+ geom_bar() + facet_wrap(~get(paste(response))) 

我得到錯誤

At least one layer must contain all variables used for facetting 

有沒有辦法在那裏facet_wrap可以從響應變量接受變量名稱,而不是在它

+3

你能讓你的例子可重現嗎? –

+28

嘗試'as.formula(paste(「〜」,response))' – kohske

+0

Kohske它的工作感謝 –

回答

50

(打開@ kohske的評論直接寫變量名到一個答案,以便它可以是接受和「關閉」):

facet_wrap(as.formula(paste("~", response)))