我有以下包装函数:
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
可选并自动绘制直方图?
如果您设置保留当前参数,我会将
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")
}
}