gpt4 book ai didi

r - 在 ggplot 函数中访问变量

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

我在下面有一个示例数据

data <- data.frame(yr = c(1999, 2000, 2001, 2002, 2003, 2004, 2005,
2006, 2007, 2009, 2010, 2011, 2012),
ntemp =c (11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 12, 23))

当我尝试运行此函数时,访问 ggplot 函数内的变量。

FUN <- function(data, fun.y, yr) {
fun.data <- data
ggplot(fun.data, aes(yr, fun.y)) +
geom_point() +
scale_y_continuous(fun.y)
}

FUN(data, "ntemp", yr)

我得到一个 error in eval(expr, envir, enclos) : object 'fun.y' not found

我该如何解决这个问题?

最佳答案

aes 只查看 data 参数中的变量。如果您想通过变量名将变量作为参数传递给 FUN,请使用 aes_string:

FUN <- function(data, x, y) {
ggplot(data, aes_string(x=x, y=y)) + geom_point()
}

FUN(data, y="ntemp", x="yr")

一个小的更正:aes 调用中的变量应该在 ggplot 对象被评估的范围内定义,所以从技术上讲,变量首先在数据中查找,然后在全局环境中查找(默认情况下) .参见 thisthis问题。

关于r - 在 ggplot 函数中访问变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21230635/

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