我已经定义了以下功能:
plot_test <- function(data) {
columns <- names(data)
for (column in columns) {
p <- ggplot(data, aes(x=get(column), y=cluster))
p <- p + geom_jitter(position = position_jitter(height = .1, width=0.1))
show(p)
}
}
输入数据框:
a <- data.frame(id=c(1,2), cluster=c(3,4))
我跑的时候:
plot_test(a)
我收到以下错误消息:
Error in get(column) : object 'column' not found
我没有适当地在for循环中确定列变量。任何帮助,将不胜感激。感谢。
答案 0 :(得分:6)
使用aes_string
而不是get
将列名传递给ggplot:
for (column in columns) {
p <- ggplot(data, aes_string(x=column, y="cluster"))
p <- p + geom_jitter(position = position_jitter(height = .1, width=0.1))
show(p)
}