2017-10-12 25 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.

感谢。

回答

0

我猜的错误是在不关闭括号

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

而且,最好不要使用<<-。相反

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

相关问题