2011-10-17 8 views
5

は、次のコードを考えてみてください:ggplotで使用するために別の関数内で関数の引数を渡したり評価する方法は?

test <- function(x,n){ 

selection<-names(x)[n] 
graph <- ggplot(x, aes(factor(selection))) 
graph + geom_bar() 
} 

test(mtcars,1) 

それはエラー原因Rが選択を見つけることができませんがスローされます。私もsubstituteevalgetで成功しませんでした。私はthis similar questionを見つけたと私はJoris'答えを理解したと思ったが、ggplotの引数の同じトリックを同様に使用することはできません。

答えて

9

この目的でaes_stringを使用できます。だから、testは次のようにする必要があります:

test <- function(x,n){ 
    graph <- ggplot(x, aes_string(x = names(x)[n])) 
    graph + geom_bar() 
} 
+0

おかげでkoshke、私は非常に多くの小さなトリックのすべての時間をお見逃しなくほしいです。それはggplotがどのように書かれたかを少し理解するのに役立ちます。 –

関連する問題