带有可选参数

时间:2017-06-11 11:49:57

标签: r

我有以下包装函数:

plot.histogram = function(x.var, y.var, pf) {
  ggplot(aes_string(x.var, y.var), data = pf) +
    geom_bar(stat="identity", color = "black", fill = "steelblue") 
} 

该功能正常。但是,有时我不想传递y.var而只是在y轴上使用默认的count。因此,在该特定情况下,图表不应是条形图,而是直方图。因此,根据缺少y.var,函数应自动决定是否绘制条形图或直方图。

那么,如果参数y.var是可选的并且如果没有给出y.var则自动绘制直方图?

1 个答案:

答案 0 :(得分:1)

如果您设置保留当前参数,我会将y.var设置为初始值NA,然后将其传递给它。最初设置对象p后,您可以稍后传递y.var参数:

plot.histogram = function(x.var, y.var = NA, pf) {
  p = ggplot(aes_string(x.var), data = pf)
  if(is.na(y.var) == TRUE){
    p + geom_histogram()
  }  
  else{
    p + geom_bar(aes_string(y = y.var),stat="identity", color = "black", fill = "steelblue")
  }
}