我写了一个绘制条形图的函数。但是,当我接触到方向时,“〜”符号会使事情变得困难。
rf.funct <- function(dat, predictor, feature){
ggplot(get(dat), aes(get(predictor), N)) +
geom_bar(stat = 'identity') +
facet_wrap(get(~feature)) # this is where the problem is
}
我尝试了以下内容:
facet_wrap((get(~feature))) # invalid first argument
facet_wrap(paste0("~ ", get(feature))) # object 'feature' not found
如何确保函数中包含'〜'符号?
答案 0 :(得分:6)
您无需使用get
。您已使用dat
参数将数据框传递到函数中,因此只需将dat
提供给ggplot,它将从其环境中获取数据数据。
rf.funct <- function(dat, predictor, feature) {
ggplot(dat, aes_string(predictor, "N")) +
geom_bar(stat = 'identity') +
facet_wrap(feature)
}
predictor
和feature
参数应作为字符串输入。然后,您可以使用aes_string
来指定美学。 facet_wrap
现在可以直接使用字符向量,而不需要公式(正如@WeihuangWong所指出的那样)。