gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 17:26:05 25 4
gpt4 key购买 nike

我正在绘制许多类似的图,所以我想我写了一个函数来简化任务。我想给它一个 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)
}

现在如果 var是一个字符串,它不起作用。如果更改 aes 也不起作用 ggplot的一部分命令到 y=data[,var]它会提示无法对闭包进行子集化。

那么解决这个问题和类似问题的正确方法/最佳实践是什么?如何轻松安全地将列名传递给想要对 data.frames 进行处理的函数?

最佳答案

坏乔兰,在评论中回答!

您要使用 aes_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)

或者反过来,这取决于您的口味。

关于r - 如何将列名传递给处理 data.frames 的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9538212/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com