R使用指数回归方程

R使用指数回归方程,r,R,我想在这样的循环中使用一个变量 for(i_want_to_use_this in seq(1,8)){ lm( y ~ ( PC1 + PC2 + PC3 + PC4 + PC5 + PC6 + PC7 +PC8 )^i_want_to_use_this , data = as.data.frame(transformed2) ) } 我试过很多东西,但都没能做到。有人对此有什么想法吗 y ~ PC1 + PC2 + ... + PC8 + PC1:PC2+PC1:PC

我想在这样的循环中使用一个变量

for(i_want_to_use_this in seq(1,8)){
lm(
  y ~ (
    PC1 + PC2 + PC3 + PC4 + PC5 + PC6 + PC7 +PC8
  )^i_want_to_use_this ,
  data = as.data.frame(transformed2)
)
}
我试过很多东西,但都没能做到。有人对此有什么想法吗

 y ~ PC1 + PC2 + ... + PC8 + PC1:PC2+PC1:PC3+...+PC1:PC8+...+PC1:PC2:..:PC8
非常感谢

编辑 我正在犯错误

terms.formulaformula中出错,数据=数据:中的幂无效 公式

这就是解决办法

lm(
  paste0("y~(PC1+PC2+PC3+PC4+PC5)^",i),
  data = as.data.frame(transformed2)
)
为@jogo编辑
对我来说,问题似乎是公式中的^1

试试这个:

for(i_want_to_use_this in seq(1,8)){
form = if(i_want_to_use_this < 2) formula("y ~ (PC1 + PC2 + PC3 + PC4 + PC5 + PC6 + PC7 +PC8)") else formula(paste0("y ~ (PC1 + PC2 + PC3 + PC4 + PC5 + PC6 + PC7 +PC8)^",i_want_to_use_this))

lm(form, data = as.data.frame(transformed2))
}
这不是一个公式,因为它是作为一个纯字符串使用的,我想使用它,但它不会转换成它的数值

必须将其粘贴在一起:

paste0("PC1 + PC2 + PC3 + PC4 + PC5 + PC6 + PC7 +PC8
      )^",i_want_to_use_this)
这样我想用它所包含的数字来代替它

lm(
  y ~ (
    PC1 + PC2 + PC3 + PC4 + PC5 + PC6 + PC7 +PC8
  ),
  data = as.data.frame(transformed2)
)

for(i_want_to_use_this in seq(2,8)){
lm(
  y ~ (
    paste0("PC1 + PC2 + PC3 + PC4 + PC5 + PC6 + PC7 +PC8
  )^",i_want_to_use_this),
  data = as.data.frame(transformed2)
)
}

不清楚。y~PC1+PC2+PC3+PC4+PC5+PC6+PC7+PC8^我的意思是什么?@jogo谢谢你的关注。我知道我没有保存结果。我尝试了你的代码,但得到了“terms.formulaformula中的错误,data=data:invalid power in formula”这个错误。@jogo实际上我想要这个等式;y~PC1+PC2+…+PC8+PC1:PC2+PC1:PC3+…+PC1:PC9+…+PC1:PC2:…:PC9lmmpg~cyl+hp+drat^1,数据=mtcars;lmmpg~cyl+hp+drat^2,数据=mtcars;lmmpg~cyl+hp+drat^3,data=mtcars第一个产生错误。我认为这对我来说是可行的,但有人给了我-1,这真的很奇怪@你可以看到我所有的剧本。谢谢;因此,很明显,您没有在公式中使用值i=1…^i,这是您的问题。@TinglTanglBob的回答清楚地描述了错误以及如何解决。如果你接受TinglTanglBob的答案,你甚至会得到一些+声誉接受自己的答案不会给你+声誉。
paste0("PC1 + PC2 + PC3 + PC4 + PC5 + PC6 + PC7 +PC8
      )^",i_want_to_use_this)
lm(
  y ~ (
    PC1 + PC2 + PC3 + PC4 + PC5 + PC6 + PC7 +PC8
  ),
  data = as.data.frame(transformed2)
)

for(i_want_to_use_this in seq(2,8)){
lm(
  y ~ (
    paste0("PC1 + PC2 + PC3 + PC4 + PC5 + PC6 + PC7 +PC8
  )^",i_want_to_use_this),
  data = as.data.frame(transformed2)
)
}