Когда вы передаете var1
в функцию doPlot
, это просто строка. Это должно быть интерпретировано как столбец данных.
Мы можем использовать нестандартную оценку (NSE) с sym
и !!
здесь.
library(ggplot2)
library(rlang)
doPlot = function(df, var1) {
# Create the plot object
ggobj = ggplot(df, aes(diagnosis,y = !!sym(var1))) + geom_boxplot()
# Add some titles and axis labels
ggobj + ggtitle(var1) + xlab("diagnosis") + ylab(var1)
}
затем примените его к каждому столбцу, который даст вам список графиков в list_plot
.
list_plot <- lapply(colnames(wdbc_train), doPlot, df = wdbc_train)
Ранее это было возможно при использовании aes_string
, в котором вы могли передавать имя столбца в виде строки, но это не рекомендуется.