jck*_*k21 2 latex r summary stargazer
我想知道是否有一种方法可以使用stargazer(). 我从以下代码开始,但我不确定如何从这里继续。
library(mtcars)
mtcars2 <- within(mtcars, {
vs <- factor(vs, labels = c("V", "S"))
am <- factor(am, labels = c("automatic", "manual"))
cyl <- ordered(cyl)
gear <- ordered(gear)
carb <- ordered(carb)
})
summary1 = summary(mtcars2)
stargazer(summary1)
Run Code Online (Sandbox Code Playgroud)
这给了我以下错误:
名称(x) <- 值中的错误:“名称”属性 [11] 的长度必须与向量 [3] 的长度相同
使用或其他类似的软件包,我想制作一个按传输( )和引擎( )stargazer()分类的汇总统计表,并以以下方式呈现。amvs
datasummary您可以使用包中的函数来实现类似的功能modelsummary(免责声明:我是维护者)。您可以在软件包的网站上找到详细的描述和许多示例。
加载库并定义自定义函数来创建平均值+/-标准差。我们使用反引号是因为我们的函数名称包含空格。请注意,由于 unicode 字符的原因,这可能无法在 Windows 上运行。
\nlibrary(modelsummary)\n\n`Mean \xc2\xb1 SD` <- function(x) { \n sprintf("%.0f \xc2\xb1 %.0f", round(mean(x)), round(sd(x)))\n}\nRun Code Online (Sandbox Code Playgroud)\n清理变量标签:
\ndat <- mtcars\ndat$am = ifelse(dat$am == 0, "automatic", "manual")\ndat$vs = ifelse(dat$vs == 0, "v-shaped", "straight")\nRun Code Online (Sandbox Code Playgroud)\n最后,我们用来datasummary创建表。有几点需要注意:
+将依次显示。*将相互“嵌套”。1是“全部”的快捷方式。您可以在软件包网站上找到详细的说明和示例。可以使用参数将该表导出为 HTML、LaTeX、Word 等output:
datasummary(\n mpg * (Min + Max + `Mean \xc2\xb1 SD`) +\n hp * (Min + Max + `Mean \xc2\xb1 SD`) +\n wt * (Min + Max + `Mean \xc2\xb1 SD`) ~\n am * vs + 1,\n data = dat)\nRun Code Online (Sandbox Code Playgroud)\n\n另一种方法是预先重塑数据。这样,您就不需要在公式中单独指定每个变量:
\nlibrary(tidyverse)\n\ndat <- mtcars %>%\n select(mpg, wt, hp, am, vs) |>\n mutate(am = ifelse(am == 0, "automatic", "manual"),\n vs = ifelse(vs == 0, "v-shaped", "straight")) |>\n pivot_longer(cols = c("mpg", "wt", "hp"),\n names_to = "variables")\n\ndatasummary(\n variables * (Min + Max + `Mean \xc2\xb1 SD`) ~ value * am * vs + Heading(`All`) * value,\n data = dat)\nRun Code Online (Sandbox Code Playgroud)\n