gpt4 book ai didi

r - 帮助理解我在 R 中定义的函数中的错误

转载 作者:行者123 更新时间:2023-12-04 16:55:37 26 4
gpt4 key购买 nike

我对 R 很陌生,刚刚学会了编写简单的函数。有人可以帮助我理解为什么以下功能不起作用。

fboxplot <- function(mydataframe, varx, vary)
{
p <- ggplot(data=mydataframe, aes(x=varx, y=vary))
p + geom_boxplot()
}

col1 = factor(rep(1:3, 3))
col2 = rnorm(9)
col3 = c(rep(10,5), rep(20,4))
df = data.frame(col1 = col1, col2 = col2, col3 = col3)

现在,如果我调用 fboxplot 函数
fboxplot(df, col1, col2)

我收到错误 Error in eval(expr, envir, enclos): object varx not found .我也试过
fboxplot(df, varx = col1, vary = col2)

这给出了同样的错误。我哪里错了?

谢谢你的帮助。

最佳答案

aes ggplot2 中的函数使用类似 library() 的名称确实如此,即它以参数的名称作为参数。如果这是一个对象,它不会评估它,而是使用名称。这里需要varx作为论点而不是什么varx也评价。

如果您使用 aes_string(),它会起作用而是在 fboxplot() 中使用字符作为参数称呼:

fboxplot <- function(mydataframe, varx, vary)
{
p <- ggplot(data=mydataframe, aes_string(x=varx, y=vary))
p + geom_boxplot()
}

col1 = factor(rep(1:3, 3))
col2 = rnorm(9)
col3 = c(rep(10,5), rep(20,4))
df = data.frame(col1 = col1, col2 = col2, col3 = col3)

fboxplot(df, "col1", "col2")

关于r - 帮助理解我在 R 中定义的函数中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6498177/

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