gpt4 book ai didi

r - 如何使用变量名作为参数

转载 作者:行者123 更新时间:2023-12-04 02:44:36 34 4
gpt4 key购买 nike

为了家庭作业,我编写了一个执行前向逐步回归的函数。它需要 3 个参数:因变量、潜在自变量列表以及找到这些变量的数据框。目前,除数据框外,我的所有输入(包括自变量列表)都是字符串。

许多内置函数以及来自高级包的函数都允许非字符串的变量输入。哪种方式是最佳实践,为什么?如果非字符串是最佳实践,考虑到其中一个参数是数据框中变量的列表,而不是单个变量,我该如何实现?

最佳答案

就我个人而言,如果字符串能够满足您的需要,我认为使用字符串没有任何问题。如果需要,您可以重写函数以将公式而不是字符串作为输入来指定自变量和因变量。在这种情况下,您的函数调用将如下所示:

fitmodel(x ~ y + z,data)

而不是这个:

fitmodel("x",list("y","z"),data)

使用公式可以指定变量的简单代数组合以在回归中使用,例如 x ~ y + log(z)。如果你走这条路,那么你可以通过调用 model.frame 构建公式指定的数据框,然后使用这个新的数据框来运行你的算法。例如:

> df<-data.frame(x=1:10,y=10:1,z=sqrt(1:10))
> model.frame(x ~ y + z,df)
x y z
1 1 10 1.000000
2 2 9 1.414214
3 3 8 1.732051
4 4 7 2.000000
5 5 6 2.236068
6 6 5 2.449490
7 7 4 2.645751
8 8 3 2.828427
9 9 2 3.000000
10 10 1 3.162278
> model.frame(x ~ y + z + I(x^2) + log(z) + I(x*y),df)
x y z I(x^2) log(z) I(x * y)
1 1 10 1.000000 1 0.0000000 10
2 2 9 1.414214 4 0.3465736 18
3 3 8 1.732051 9 0.5493061 24
4 4 7 2.000000 16 0.6931472 28
5 5 6 2.236068 25 0.8047190 30
6 6 5 2.449490 36 0.8958797 30
7 7 4 2.645751 49 0.9729551 28
8 8 3 2.828427 64 1.0397208 24
9 9 2 3.000000 81 1.0986123 18
10 10 1 3.162278 100 1.1512925 10
>

关于r - 如何使用变量名作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19100006/

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