我有以下包装函数:
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
则自动绘制直方图?
答案 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")
}
}