2017-10-12 10 views
1

ユーザ入力に基づいてggplot2散布図を生成する汎用関数を作成しようとしています。これは私がこれまで持っているものです。ggplot2ユーザ関数の非数値引数エラー

G.Point <- function(USER2, USER3, USER4, X, Y){ 
Point <<- Plot.data + geom_point(
aes_string(x = USER2, y = USER3, colour = USER4) + 
    xlab(X) + 
    ylab(Y)) 
} 
G.Point("USER2", "USER3", "USER4", "X", "Y") #These are called something else in actual code. 
plot(Point) 

これは、私の知る限り、私は私の非数値入力のように、二項演算子を作成していないよ言うことができるように、「二項演算子に非数値引数」エラーを返す続けるが、うまくいくはずです。私はxとyのラベルを指定しようとする前に、このコードはうまくいきました。私は事前にR.

おかげで私自身の関数を書くに新たなんだので、私は愚かな何かが欠けする必要があります

。私は、エラーがまたかっこ

geom_point(
    aes_string(x = USER2, y = USER3, colour = USER4)) 

を閉じないでだろうと思い

答えて

0

<<-を使用しない方が良いです。代わりに

G.Point <- function(USER2, USER3, USER4, X, Y){ 
    print(Plot.data + 
     geom_point(aes_string(x = USER2, y = USER3, colour = USER4)) + 
     xlab(X) + 
     ylab(Y)) 
    } 
G.Point("USER2", "USER3", "USER4", "X", "Y") 

注:再現可能な例は

+0

もっと良かったはず、私はそれが何かを明らかに知っていたことをありがとうございました。 << - を使って変数に代入するのが間違っていますか?理想的には、後で呼び出される変数に格納されたプロットを希望します。 –

+0

@ Matt.TWこれはグローバルな割り当てです。この場合、必要ありません – akrun

関連する問題