从“pivot_longer”输出中删除自动生成的前缀
Remove auto-generated prefixes from `pivot_longer` output
如何删除 table 中的 (Intercept)_
和 (carat)_
前缀?这样,我可以稍微缩小 table 的宽度并删除名称冗余。
在 pivot_longer()
或 pivot_wider()
或两者中使用 names_prefix = ""
,类似于 没有帮助。
生成 table 的代码是
library(emmeans)
library(tidyverse)
library(broom)
library(kableExtra)
models_ci <- diamonds %>% group_by(cut, color) %>%
do(data.frame(tidy(lm(price ~ carat, data = .), conf.int=T )))
models_ci[,1:5] %>%
pivot_longer(cols=c(estimate, std.error), names_prefix = "") %>%
pivot_wider(names_from = c(term, name),
values_from = value) %>%
kbl(booktabs = T,
linesep = "",
digits = 2,
caption = "95% confidence intervals") %>%
add_header_above(c("Effects" = 2 , "Intercept" = 2, "Slope" = 2)) %>%
kable_styling(latex_options = c("repeat_header"))
提前致谢!
一个解决方案colnames<-
:
library(tidyverse)
library(broom)
library(kableExtra)
models_ci <- diamonds %>% group_by(cut, color) %>%
do(data.frame(tidy(lm(price ~ carat, data = .), conf.int=T )))
models_ci[,1:5] %>%
pivot_longer(cols=c(estimate, std.error)) %>%
pivot_wider(names_from = c(term, name),
values_from = value) %>%
`colnames<-`(c("cut", "color", "estimate", "std.error", "estimate", "std.error")) %>%
kbl(booktabs = T,
linesep = "",
digits = 2,
caption = "95% confidence intervals") %>%
add_header_above(c("Effects" = 2 , "Intercept" = 2, "Slope" = 2)) %>%
kable_styling(latex_options = c("repeat_header"))
-输出
您可以将 setNames
与 gsub
一起使用
setNames(gsub('\(Intercept)_', "", colnames(.)))
setNames(gsub('\carat_', "", colnames(.)))
library(emmeans)
library(tidyverse)
library(broom)
library(kableExtra)
models_ci <- diamonds %>% group_by(cut, color) %>%
do(data.frame(tidy(lm(price ~ carat, data = .), conf.int=T )))
models_ci[,1:5] %>%
pivot_longer(cols=c(estimate, std.error), names_prefix = "") %>%
pivot_wider(names_from = c(term, name),
values_from = value) %>%
setNames(gsub('\(Intercept)_', "", colnames(.))) %>%
setNames(gsub('\carat_', "", colnames(.))) %>%
kbl(booktabs = T,
linesep = "",
digits = 2,
caption = "95% confidence intervals") %>%
add_header_above(c("Effects" = 2 , "Intercept" = 2, "Slope" = 2)) %>%
kable_styling(latex_options = c("repeat_header"))
如何删除 table 中的 (Intercept)_
和 (carat)_
前缀?这样,我可以稍微缩小 table 的宽度并删除名称冗余。
在 pivot_longer()
或 pivot_wider()
或两者中使用 names_prefix = ""
,类似于
生成 table 的代码是
library(emmeans)
library(tidyverse)
library(broom)
library(kableExtra)
models_ci <- diamonds %>% group_by(cut, color) %>%
do(data.frame(tidy(lm(price ~ carat, data = .), conf.int=T )))
models_ci[,1:5] %>%
pivot_longer(cols=c(estimate, std.error), names_prefix = "") %>%
pivot_wider(names_from = c(term, name),
values_from = value) %>%
kbl(booktabs = T,
linesep = "",
digits = 2,
caption = "95% confidence intervals") %>%
add_header_above(c("Effects" = 2 , "Intercept" = 2, "Slope" = 2)) %>%
kable_styling(latex_options = c("repeat_header"))
提前致谢!
一个解决方案colnames<-
:
library(tidyverse)
library(broom)
library(kableExtra)
models_ci <- diamonds %>% group_by(cut, color) %>%
do(data.frame(tidy(lm(price ~ carat, data = .), conf.int=T )))
models_ci[,1:5] %>%
pivot_longer(cols=c(estimate, std.error)) %>%
pivot_wider(names_from = c(term, name),
values_from = value) %>%
`colnames<-`(c("cut", "color", "estimate", "std.error", "estimate", "std.error")) %>%
kbl(booktabs = T,
linesep = "",
digits = 2,
caption = "95% confidence intervals") %>%
add_header_above(c("Effects" = 2 , "Intercept" = 2, "Slope" = 2)) %>%
kable_styling(latex_options = c("repeat_header"))
-输出
您可以将 setNames
与 gsub
setNames(gsub('\(Intercept)_', "", colnames(.)))
setNames(gsub('\carat_', "", colnames(.)))
library(emmeans)
library(tidyverse)
library(broom)
library(kableExtra)
models_ci <- diamonds %>% group_by(cut, color) %>%
do(data.frame(tidy(lm(price ~ carat, data = .), conf.int=T )))
models_ci[,1:5] %>%
pivot_longer(cols=c(estimate, std.error), names_prefix = "") %>%
pivot_wider(names_from = c(term, name),
values_from = value) %>%
setNames(gsub('\(Intercept)_', "", colnames(.))) %>%
setNames(gsub('\carat_', "", colnames(.))) %>%
kbl(booktabs = T,
linesep = "",
digits = 2,
caption = "95% confidence intervals") %>%
add_header_above(c("Effects" = 2 , "Intercept" = 2, "Slope" = 2)) %>%
kable_styling(latex_options = c("repeat_header"))