gpt4 book ai didi

r - 在函数内将参数传递给 R 中的 lm

转载 作者:行者123 更新时间:2023-12-02 09:35:05 25 4
gpt4 key购买 nike

我想打电话lm在函数内并指定 weights变量作为参数传递给外部函数,然后传递给 lm .下面是一个可重现的示例,如果对 lm 进行调用,则该调用会起作用。在函数之外,但会产生错误消息 Error in eval(expr, envir, enclos) : object 'weightvar' not found当从包装函数中调用时。

olswrapper <- function(form, weightvar, df){
ols <- lm(formula(form), weights = weightvar, data = df)
}

df <- mtcars

ols <- lm(mpg ~ cyl + qsec, weights = gear, data = df)
summary(ols)

ols2 <- olswrapper(mpg ~ cyl + qsec, weightvar = gear, df = df)
#Produces error: "Error in eval(expr, envir, enclos) : object 'weightvar' not found"

最佳答案

基于评论,gear不是全局定义的。它在单机内部运行 lm当您指定正在使用的数据时调用,所以 lm知取gear来自 df .

然而,gear本身不存在于独立之外 lm功能。这由 gear 的输出显示

> gear
Error: object 'gear' not found

您可以通过 gear使用 df$gear 进入函数
weightvar <- df$gear
ols <- olswrapper(mpg ~ cyl + qsec, weightvar , df = df)

关于r - 在函数内将参数传递给 R 中的 lm,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27261232/

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