Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在R中访问函数中的变量名_R - Fatal编程技术网

在R中访问函数中的变量名

在R中访问函数中的变量名,r,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) }

我定义了以下函数:

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)
  }
}
我收到以下错误消息:

Error in get(column) : object 'column' not found

我没有在for循环中适当地确定列变量的范围。任何帮助都将不胜感激。谢谢。

使用
aes\u 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)
}
for(列中的列){

p将
get
中的列用引号括起来,例如
get(“列”)
@SimonO101:这不起作用-
get(“列”)
将被执行以查找
数据
数据框中名为
的列。@DavidRobinson我在键入后意识到了这一点。我首先评估了语法上的错误。不过,我+1您的解释非常清晰简洁。
Error in get(column) : object 'column' not found
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)
}