我有以下功能:
myfunction <- function(arg1){
arg1 <- m$value
coverage_plot <- ggplot(data=m, aes(x=Time, y=arg1, group=Technique, color=Technique)) + geom_line()
我想传递字符串参数(例如"Age"
)并将m$value
分配给Age
。目前,在图中,y轴标签显示为arg1
,应为Age
。
我考虑过使用as.name
函数将字符串参数转换为变量名:
var <- as.name(arg1)
var <- m$value
coverage_plot <- ggplot(data=m, aes(x=Time, y=var, group=Technique, color=Technique)) + geom_line()
我最后遇到了同样的问题,var
显示在情节而不是Age
。
我还尝试将assign
函数用作assign(arg1,m$value)
,但效果不佳。
所以问题是如何将传递的参数转换为可以在y轴标签中显示的变量?
答案 0 :(得分:2)
您可以使用aes_string
函数并提供如下:
aes_string(x="Time", y=var, group="Technique", color="Technique")
我认为"Time"
和"Technique"
是m
中列的名称,而不是变量。
答案 1 :(得分:0)
我的问题的答案非常简单。解决方案是将y轴标签更改为参数字符串:
myfunction <- function(arg1){
yValues <- m$value
the_plot <- ggplot(data=m, aes(x=Time, y=yValues, group=Technique, color=Technique)) + geom_line() + ylab(arg1)