gpt4 book ai didi

r - 通过函数将公式传递给 cor.test

转载 作者:行者123 更新时间:2023-12-02 03:43:32 25 4
gpt4 key购买 nike

采用随机数据和这两个函数。

data = data.frame(x=c(1,2,3,4,5,5), y=c(1,2,3,4,5,5))

test_fun1 <- function(data, formula){ lm( formula = formula, data = data) }
test_fun2 <- function(data, formula){ cor.test( formula = formula, data = data) }

lm 按预期工作。

test_fun1( data = data, formula= x~y )

但我不能对 cor.test 做同样的事情。这失败了:

test_fun2(数据=数据,公式=~x+y)

直接就可以正常工作:

cor.test(公式 = ~x+y, 数据 = 数据)

根据我的阅读,可能存在一些范围界定问题。它找不到通过的公式。错误是“错误:'closure'类型的对象不可子集化”但这是因为找不到formula,然后它尝试使用名为formula的函数。

如何让它找到传递的函数?

最佳答案

该功能可能存在错误。尝试这个解决方法:

test_fun3 <- function(data, formula) { 
eval.parent(substitute(cor.test( formula = formula, data = data)))
}

这将替换 test_fun3 中的参数,然后在父框架(即 test_fun3 的调用者)中运行它。

关于r - 通过函数将公式传递给 cor.test,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47594815/

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