r - 一个 lm() 动态函数 - R
问题描述
假设我有这个数据框:
N <- 50
df <- data.frame(
LA1 = sample(1:10, size = N, replace = TRUE),
LA2 = sample(1:10, size = N, replace = TRUE),
LA3 = sample(1:10, size = N, replace = TRUE),
LA4 = sample(1:10, size = N, replace = TRUE),
LA5 = sample(1:10, size = N, replace = TRUE),
LA6 = sample(1:10, size = N, replace = TRUE),
LA7 = sample(1:10, size = N, replace = TRUE),
LA8 = sample(1:10, size = N, replace = TRUE),
LAY = sample(1:10, size = N, replace = TRUE),
UF1 = sample(1:10, size = N, replace = TRUE),
UF2 = sample(1:10, size = N, replace = TRUE),
UF3 = sample(1:10, size = N, replace = TRUE),
UF4 = sample(1:10, size = N, replace = TRUE),
UF5 = sample(1:10, size = N, replace = TRUE),
UF6 = sample(1:10, size = N, replace = TRUE),
UFY = sample(1:10, size = N, replace = TRUE),
EK1 = sample(1:10, size = N, replace = TRUE),
EK2 = sample(1:10, size = N, replace = TRUE),
EK3 = sample(1:10, size = N, replace = TRUE),
EK4 = sample(1:10, size = N, replace = TRUE),
EK5 = sample(1:10, size = N, replace = TRUE),
EK6 = sample(1:10, size = N, replace = TRUE),
EK7 = sample(1:10, size = N, replace = TRUE),
EK8 = sample(1:10, size = N, replace = TRUE),
EK9 = sample(1:10, size = N, replace = TRUE),
EK10 = sample(1:10, size = N, replace = TRUE),
EK11 = sample(1:10, size = N, replace = TRUE),
EK12 = sample(1:10, size = N, replace = TRUE),
EKY = sample(1:10, size = N, replace = TRUE),
Z1 = sample(1:10, size = N, replace = TRUE),
Z2 = sample(1:10, size = N, replace = TRUE),
Z3 = sample(1:10, size = N, replace = TRUE)
)
我想在哪里计算这个模型:
m1=lm(formula = LAY ~ LA1+LA2+LA3+LA4+LA5+LA6+LA7+LA8, data = df)
m11=step(m1,direction="both")
m2=lm(formula = UFY ~ UF1+UF2+UF3+UF4+UF5+UF6,data = df)
m22=step(m2,direction="both")
m3=lm(formula = EKY ~ EK1+EK2+EK3+EK4+EK5+EK6+EK7+EK8+EK9+EK10+EK11+EK12, data = df)
m33=step(m3,direction="both")
m8=lm(formula = Z1 ~ LAY+UFY+EKY, data = df)
m88=step(m8,direction="both")
m9=lm(formula = Z2 ~ LAY+UFY+EKY, data = df)
m99=step(m9,direction="both")
m10=lm(formula = Z3 ~ LAY+UFY+EKY, data = df)
m100=step(m10,direction="both")
如您所见,如果数据库的维数增加(增加 、 或自变量的数量LA
),UF
我EK
将不得不手动修改模型的输入)。所以,我正在寻找一种方法:
LA
对于给定类别( 、UF
和),给定一定数量的自变量(可能是 5、10、30 或更多)EK
,模型的输入会自动更改。
即使我找到了不同的语法来计算模型(如X*Z = [(X+Z)^3]
),我也找不到使这种计算更加动态的方法。
注意事项:
- 自变量 (
LA
,UF
,EK
) 的数量可以改变。 - 因变量 (
LAY
,UFY
,EKY
) 的数量永远不会改变。 - 从该模型的输出中提取系数向量(以防万一)。
解决方案
推荐阅读
- javascript - 在数组中添加两个相同的行而不是只修改其中一个
- excel - 根据列中的值对整个工作表的行进行着色
- android - 当应用程序被杀死时,互联网广播接收器不工作
- c++ - 如何获取 LIST 命令的响应消息(来自 CFTPConnection)
- pycharm - 如何移动 Pycharm 打开文件工具栏
- .net - UI Automation的AutomationId在不同版本的windows上不一致
- crystal-reports - 是否有任何水晶编码风格来防止编译时出现零错误
- c++ - 使用 QMovie 加载 gif 文件失败
- apache-spark - Spark UI中的长时间调度程序延迟
- java - 基于单个 Main 方法删除所有未使用的代码