首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >循环ggplot2多元线性回归

循环ggplot2多元线性回归
EN

Stack Overflow用户
提问于 2020-09-10 09:07:21
回答 1查看 187关注 0票数 0

我试图循环我的多元线性回归图和总结,但我始终遇到一个错误的R,它的状态Error: More than one expression parsed。我不知道如何解决这个问题,或者是否有更好的方法来实现我想要做的事情,主要是:

Group

  • Compute

  • 图以Group为颜色

  • 的多元线性回归图,对每条线性回归线进行汇总,基于回归
  1. anova确定差异

代码语言:javascript
运行
复制
colNames <- names(df)[c(35:39)]
for(i in colNames){
  plt <- ggplot(df, 
aes_string(x=df$MachineLength, y=i, fill=df$Group, color=be_nlyl$Group)) + 
geom_smooth(method=lm) + 
geom_point(size = 2, alpha=0.7) + 
labs(title="Machine", subtitle = "Machine Type") + 
theme_bw() + 
theme(plot.title = element_text(hjust=0.5, face="bold"), 
plot.subtitle = element_text(hjust=0.5))
  print(plt)
  lm_A <- lm(formula = i ~ MachineLength, data = subset(be_nlyl, Group == "A"))
  summary(lm_A) %>% print()
lm_B <- lm(formula = i ~ MachineLength, data = subset(be_nlyl, Group == "B"))
  summary(lm_B) %>% print()
  clz.lm <- lm(formula = i ~ Group + MachineLength + Group:MachineLength, data = df)
summary(clz.lm) %>% print()
  ano.lm <- Anova(lm(i ~ MachineLength*Group, data = df))
  print(ano.lm)
}

有谁能想到如何实现上述目标呢?谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-10 10:36:06

尝试以下几点:

  1. 创建长度为colNames的列表来存储所有的输出,这样我们不仅可以打印输出,还可以存储它们。

  1. colNames索引上使用for循环,而不是实际的列名,这样您就可以使用它作为索引来存储不同对象的输出。

  1. aes_string已被废弃,因此我们使用.data代词作为变量传递列名。

  1. 使用sprintf创建在lm函数.

中传递的公式字符串。

代码语言:javascript
运行
复制
library(ggplot2)

colNames <- names(df)[c(35:39)]
plt <- vector('list', length(colNames))
lm_A <- vector('list', length(colNames))
summary_lm_A <- vector('list', length(colNames))
summary_lm_B <- vector('list', length(colNames))
lm_B <- vector('list', length(colNames))
clz.lm <- vector('list', length(colNames))
summary_clz.lm <- vector('list', length(colNames))
ano.lm <- vector('list', length(colNames))

for(i in seq_along(colNames)) {
  var <- colNames[i]
  plt[[i]] <- ggplot(df, aes(MachineLength, .data[[var]], fill= Group, color= Group)) + 
               geom_smooth(method=lm) + 
               geom_point(size = 2, alpha=0.7) + 
               labs(title="Machine", subtitle = "Machine Type") + 
               theme_bw() + 
               theme(plot.title = element_text(hjust=0.5, face="bold"), 
                     plot.subtitle = element_text(hjust=0.5))
  lm_A[[i]] <- lm(sprintf('%s~MachineLength', var), data = subset(df, Group == "A"))
  summary_lm_A[[i]] <- summary(lm_A[[i]])
  lm_B[[i]] <- lm(sprintf('%s~MachineLength', var), data = subset(df, Group == "B"))
  summary_lm_B[[i]] <- summary(lm_B[[i]])
  clz.lm[[i]] <- lm(sprintf('%s~Group + MachineLength + Group:MachineLength', var), data = df)
  summary_clz.lm[[i]] <- summary(clz.lm[[i]])
  ano.lm[[i]] <- Anova(lm(sprintf('%s~MachineLength*Group', var), data = df))
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63826398

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档