我已经定义了以下功能:
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)
}
}
Run Code Online (Sandbox Code Playgroud)
带输入数据框:
a <- data.frame(id=c(1,2), cluster=c(3,4))
Run Code Online (Sandbox Code Playgroud)
当我跑:
plot_test(a)
Run Code Online (Sandbox Code Playgroud)
我收到以下错误消息:
Error in get(column) : object 'column' not found
Run Code Online (Sandbox Code Playgroud)
我没有适当地在for循环中确定列变量.任何帮助,将不胜感激.谢谢.
使用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)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
237 次 |
| 最近记录: |