如何将列名传递给处理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'
,等等。