R 的包装函数,带有可选参数[重复]

问题描述 投票:0回答:1

我有以下包装函数:

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
可选并自动绘制直方图?

r
1个回答
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)){
    p + geom_histogram()
  }  
  else{
    p + geom_bar(aes_string(y = y.var),stat="identity", color = "black", fill = "steelblue")
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.