clog14 - 1 year ago 104
R Question

# stargazer with R table output or for "special" summary statistics

I have a categorical variable, df\$Chain, taking on levels 1,2,3 and 4. I have a variable, df\$State, taking on levels 0, 1. I would like to produce a table that shows proportions by state. The standard deviation of the proportions and the t-statistic of a test of equality of the two proportions.

I can produce the proportions via

``````table.1 <- prop.table(table(dfLong\$CHAIN,dfLong\$STATE), margin = 2)
``````

which gives

``````            0         1
1 0.4430380 0.4108761
2 0.1518987 0.2054381
3 0.2151899 0.2477341
4 0.1898734 0.1359517
``````

and goes into the right direction.

But, when I give this object to stargazer via

``````stargazer(table.1, type = 'text')
``````

it stacks the proportions to

``````  0 1  NA
-----------
1 1 0 0.443
2 2 0 0.152
3 3 0 0.215
4 4 0 0.190
5 1 1 0.411
6 2 1 0.205
7 3 1 0.248
8 4 1 0.136
-----------
``````

How can I get the proportions within a state next to each other and add standard errors and t-statistics?

Is stargazer the right tool for this at all?

Suppose your data and `prop.table` is

``````set.seed(123)
dfLong <- data.frame(CHAIN = sample(1:4, 100, replace = TRUE),
STATE = sample(0:1, 100, replace = TRUE))
table.1 <- prop.table(table(dfLong\$CHAIN,dfLong\$STATE), margin = 2)
``````

The idea is to define `class` for `table.1` as `matrix` and instruct `stargazer` to print out the matrix "as is":

``````class(table.1) <- "matrix"
stargazer(table.1, type = "text", summary = FALSE)
# =============
#     0     1
# -------------
# 1 0.180 0.340
# 2 0.320 0.220
# 3 0.220 0.180
# 4 0.280 0.260
# -------------
``````

Using this approach you can `cbind` other quantities of interest (standard errors, etc.) to the original matrix, and run the augmented matrix through `stargazer`.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download