我有一个名为plot.medals2
的函数,它的输入包含一个名为start的变量和一个名为finish的变量。这两个变量都是数字,我希望如果start大于finish,函数将停止运行并绘制一个空的ggplot
,就像我在这里附加的那样。
这是应该处理的代码的一部分:
plot.medals2 <- function(code,start,finish,medalsvec) {
if(start>finish) { #years not make sense return empty drawing
ggplot() + ylab('medals won') + xlab('year') +
ggtitle(paste('Medals by',"",countries.df[countries.df$country_id==code,]$country_name,',',"",finish,'-',start))
return()
}
}
这是我尝试运行时得到的结果:
plot.medals2('USA',1933,1456,c('GOLD'))
NULL
我尝试使用断点选项来查看发生了什么,似乎是 函数确实输入if语句意味着它识别变量start大于finish但是由于某种原因它跳过接下来的2行并且没有绘制任何东西。现在当我使用这个
ggplot() + ylab('medals won') + xlab('year') +
ggtitle(paste('Medals by',"",countries.df[countries.df$country_id==code,]$country_name,',',"",finish,'-',start))
在函数之外它可以工作但不是当它是函数的一部分时。