clog14 - 6 months ago 53

R Question

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?

Answer

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`

.