【问题标题】:I don't know why this R loop code doesn't work我不知道为什么这个 R 循环代码不起作用
【发布时间】:2020-01-11 20:17:02
【问题描述】:

我通过两个子组组合和两个因变量为线性回归制作了循环代码。 但它不适用于错误。 有人可以修复我的代码吗?

each_lm <-data.frame(matrix(nrow=1, ncol=10))
names(each_lm)=c("col1", "col2", "col3", "Estimate", " Std. Error", " z value", " pValue", "2.5%", "97.5%","r^2")
e=1
for (i in c("sbp","dbp")) {
  for (j in c("1","2","3","4","5")) {
   for (k in c("2002","2005","2008","2011","2014","2017")){
      form <- formula(paste0(i,"~bmi"))
      result <- lm(form, data=subset(bp, gr_bmi==j & year==k)
      each_lm[e,1]<-i
      each_lm[e,2]<-j
      each_lm[e,3]<-k
      each_lm[e,4]<-round(coef(summary(result))[2,1],3)
      each_lm[e,5]<-round(coef(summary(result))[2,2],3)
      each_lm[e,6]<-round(coef(summary(result))[2,3],3)
      each_lm[e,7]<-round(coef(summary(result))[2,4],3)
      each_lm[e,8]<-round(confint(result)[2,1],2)
      each_lm[e,9]<-round(confint(result)[2,2],2)
      each_lm[e,10]<-round(summary(result)$r.squared, 3)
    e<-e+1
    }
  }
}
write.xlsx(each_lm, "c:/R/sbp_bmi/Table4_2.xlsx")

错误信息:

Error: unexpected symbol in:
"      result <- lm(form, data=subset(bp, gr_bmi==j & year==k)
      each_lm"
Error: object 'k' not found
Error in round(summary(result)$r.squared, 3) : 
  non-numeric argument to mathematical function
Error: unexpected '}' in "    }"
Error: unexpected '}' in "  }"
Error: unexpected '}' in "}"

【问题讨论】:

    标签: r loops regression


    【解决方案1】:

    错误是您的功能之一未正确关闭。行内:

    result <- lm(form, data=subset(bp, gr_bmi==j & year==k)
    

    只有 1 个右括号,而应该有 2 个,因为您正在调用 2 个函数。

    用这个替换它会修复它

    result <- lm(form, data=subset(bp, gr_bmi==j & year==k))
    

    【讨论】:

    • 谢谢。我不知道为什么我找不到那个^^;;;;
    猜你喜欢
    • 2021-03-11
    • 1970-01-01
    • 1970-01-01
    • 2019-12-11
    • 1970-01-01
    • 2020-09-19
    • 2014-01-17
    • 1970-01-01
    • 2022-10-23
    相关资源
    最近更新 更多