访问R中函数中的变量名

时间:2013-03-27 14:25:22

标签: r

我已经定义了以下功能:

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循环中确定列变量。任何帮助,将不胜感激。感谢。

1 个答案:

答案 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)
}