如何使用 stargazer 创建包含两个组的摘要统计信息 table?
How to create a summary statistics table with two groups using stargazer?
我一直在寻找如何使用 stargazer 包在 R 中创建按分类变量分组的汇总统计信息 table。
基本上,我想并排显示两组(对照组和治疗组)的平均值,并另外计算两组之间的差异。
每当我尝试使用 stargazer 创建 table 时,它都会为彼此下方的每个分类变量创建两个 table。
我用 mtcars 数据集创建了一个示例。假设变量'am'是分类变量:
attach(mtcars)
library(dplyr)
data = mtcars
auto1 = data %>%
filter(am == 1) %>%
dplyr::select(mpg,disp,hp)
manu1 = data %>%
filter(am == 0) %>%
dplyr::select(mpg,disp,hp)
stargazer(auto1,manu1, type = "html", out = "summary.html",summary.stat = c("mean"), summary = TRUE)`
由于没有按预期进行,我手动创建了摘要 table 并在 stargazer 中将摘要指定为 FALSE 以获得一个 HTML table:
auto = data %>%
filter(am == 1) %>%
summarize_each(funs(mean)) %>%
melt(id.vars="am")
manu = data %>%
filter(am == 0) %>%
summarize_each(funs(mean)) %>%
melt(id.vars = "am")
end = dplyr::select(data.frame(auto,manu),-c(am,am.1,variable.1))
end$diff = end$value.1 - end$value
names(end) = c("Variable","Automatic","Manual","Difference")
stargazer(end, type = "html", out = "summary.html",summary.stat = c("mean"), summary = FALSE)
这可能不是创建所需汇总统计信息的巧妙方法 table,但我自己想不出更好的方法。有什么建议可以与 stargazer 或其他软件包一起使用吗?
不完全确定您想要的输出是什么,但这有帮助吗?
mtcars %>%
group_by(am) %>%
summarise(mpg = mean(mpg), disp = mean(disp), hp = mean(hp)) %>%
gather(key = "variable","value",mpg,disp,hp) %>%
spread(am,value) %>%
group_by(variable) %>%
mutate(difference = `1`-`0`)
## Source: local data frame [3 x 4]
## Groups: variable [3]
##
## variable `0` `1` difference
## <chr> <dbl> <dbl> <dbl>
## 1 disp 290.37895 143.53077 -146.848178
## 2 hp 160.26316 126.84615 -33.417004
## 3 mpg 17.14737 24.39231 7.244939
我一直在寻找如何使用 stargazer 包在 R 中创建按分类变量分组的汇总统计信息 table。
基本上,我想并排显示两组(对照组和治疗组)的平均值,并另外计算两组之间的差异。
每当我尝试使用 stargazer 创建 table 时,它都会为彼此下方的每个分类变量创建两个 table。
我用 mtcars 数据集创建了一个示例。假设变量'am'是分类变量:
attach(mtcars)
library(dplyr)
data = mtcars
auto1 = data %>%
filter(am == 1) %>%
dplyr::select(mpg,disp,hp)
manu1 = data %>%
filter(am == 0) %>%
dplyr::select(mpg,disp,hp)
stargazer(auto1,manu1, type = "html", out = "summary.html",summary.stat = c("mean"), summary = TRUE)`
由于没有按预期进行,我手动创建了摘要 table 并在 stargazer 中将摘要指定为 FALSE 以获得一个 HTML table:
auto = data %>%
filter(am == 1) %>%
summarize_each(funs(mean)) %>%
melt(id.vars="am")
manu = data %>%
filter(am == 0) %>%
summarize_each(funs(mean)) %>%
melt(id.vars = "am")
end = dplyr::select(data.frame(auto,manu),-c(am,am.1,variable.1))
end$diff = end$value.1 - end$value
names(end) = c("Variable","Automatic","Manual","Difference")
stargazer(end, type = "html", out = "summary.html",summary.stat = c("mean"), summary = FALSE)
这可能不是创建所需汇总统计信息的巧妙方法 table,但我自己想不出更好的方法。有什么建议可以与 stargazer 或其他软件包一起使用吗?
不完全确定您想要的输出是什么,但这有帮助吗?
mtcars %>%
group_by(am) %>%
summarise(mpg = mean(mpg), disp = mean(disp), hp = mean(hp)) %>%
gather(key = "variable","value",mpg,disp,hp) %>%
spread(am,value) %>%
group_by(variable) %>%
mutate(difference = `1`-`0`)
## Source: local data frame [3 x 4]
## Groups: variable [3]
##
## variable `0` `1` difference
## <chr> <dbl> <dbl> <dbl>
## 1 disp 290.37895 143.53077 -146.848178
## 2 hp 160.26316 126.84615 -33.417004
## 3 mpg 17.14737 24.39231 7.244939