首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >r: select(everything())不使用broom::augment获取建模结果

r: select(everything())不使用broom::augment获取建模结果
EN

Stack Overflow用户
提问于 2019-02-02 04:46:17
回答 1查看 455关注 0票数 1

我希望创建一个干净的数据帧与线性模型结果lm的列重新排序,我的最终目标是编写数据帧,以图表和审计模型残差。首先,示例数据:

代码语言:javascript
复制
df1 <- cbind.data.frame(dt = seq.Date(as.Date('2019-01-01'),
                                      as.Date('2019-01-10'),
                                      by = 'day' ),
                        depVar = rnorm(10,2,1),
                        indepVar1 = rnorm(10,4,3),
                        indepVar2 = rnorm(10,7,2)
        )

现在运行模型:

代码语言:javascript
复制
modRes <- lm(depVar~ indepVar1, data=df1)

avf1 <- broom::augment(modRes)

library(dplyr)

avf1 <- avf1 %>% 
    # drop what we don't need
    select(-c(.se.fit, .hat, .sigma, .cooksd, .std.resid)) %>% 
    cbind(df1) 

上面的代码运行良好,但是我想用select(dt, everything())添加另一个管道%>%,这样我就可以对列进行重新排序。下面返回一个错误:

代码语言:javascript
复制
avf1 <- avf1 %>% 
  select(-c(.se.fit, .hat, .sigma, .cooksd, .std.resid)) %>% # drop what we don't need
  cbind(df1) %>% 
  select(dt, everything())

Error: Can't bind data because some arguments have the same name
Call `rlang::last_error()` to see a backtrace

为什么这是失败的?

EN

回答 1

Stack Overflow用户

发布于 2019-02-02 06:21:44

代码语言:javascript
复制
avf1 <- modRes %>%
  augment() %>% 
  select(-c(.se.fit, .hat, .sigma, .cooksd, .std.resid)) %>% 
  bind_cols(df1) %>% 
  select(dt, everything())
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54486931

复制
相关文章

相似问题

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