Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/72.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.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
如何将列名传递给处理data.frames的函数_R_Ggplot2 - Fatal编程技术网

如何将列名传递给处理data.frames的函数

如何将列名传递给处理data.frames的函数,r,ggplot2,R,Ggplot2,我正在绘制许多类似的图形,所以我想我写了一个函数来简化任务。我想给它传递一个data.frame和要绘制的列的名称。以下是我尝试过的: plot_individual_subjects <- function(var, data) { require(ggplot2) ggplot(data, aes(x=Time, y=var, group=Subject, colour=SubjectID)) + geom_line() + geom_point() + g

我正在绘制许多类似的图形,所以我想我写了一个函数来简化任务。我想给它传递一个
data.frame
和要绘制的列的名称。以下是我尝试过的:

plot_individual_subjects <- function(var, data)
{
  require(ggplot2)

  ggplot(data, aes(x=Time, y=var, group=Subject, colour=SubjectID)) +
    geom_line() + geom_point() + 
    geom_text(aes(label=Subject), hjust=0, vjust=0)
}

plot\u个别受试者Bad Joran,在评论中回答

您想使用
aes\u string
,它允许您将变量名作为字符串传递。在您的特定情况下,由于您似乎只想修改
y
变量,因此您可能需要重新组织哪些几何图形映射了哪些美学。例如,可能是这样的:

ggplot(data, aes_string(y = var)) + 
    geom_line(aes(x = Time,group = Subject,colour = SubjectID)) + 
    geom_point(aes(x = Time,group = Subject,colour = SubjectID)) + 
    geom_text(aes(x = Time,group = Subject,colour = SubjectID,label = Subject),hjust =0,vjust = 0)

或者另一种方式,取决于你的品味。

@joran你不妨将其作为答案发布。joran,有没有办法在同一个ggplot调用中混合使用aes()和aes_string()?i、 例如,如果我的x轴对所有的几何图形都是公共的,那么把它放在几何图形调用中似乎有点奇怪clunky@KarateSnowMachine不能在同一层中同时使用
aes
aes\u string
。您总是可以将它映射为
aes\u字符串
x='Time'
,等等。