Victor Van Hee - 1 year ago 73

R Question

I have a table in R that has

`str()`

`table [1:3, 1:4] 0.166 0.319 0.457 0.261 0.248 ...`

- attr(*, "dimnames")=List of 2

..$ x: chr [1:3] "Metro >=1 million" "Metro <1 million" "Non-Metro Counties"

..$ y: chr [1:4] "q1" "q2" "q3" "q4"

and looks like this when I print it:

`y`

x q1 q2 q3 q4

Metro >=1 million 0.1663567 0.2612212 0.2670441 0.3053781

Metro <1 million 0.3192857 0.2480012 0.2341030 0.1986102

Non-Metro Counties 0.4570341 0.2044960 0.2121102 0.1263597

I want to get rid of the

`x`

`y`

`x`

`y`

`as.data.frame(mytable)`

`x y Freq`

1 Metro >=1 million q1 0.1663567

2 Metro <1 million q1 0.3192857

3 Non-Metro Counties q1 0.4570341

4 Metro >=1 million q2 0.2612212

5 Metro <1 million q2 0.2480012

6 Non-Metro Counties q2 0.2044960

7 Metro >=1 million q3 0.2670441

8 Metro <1 million q3 0.2341030

9 Non-Metro Counties q3 0.2121102

10 Metro >=1 million q4 0.3053781

11 Metro <1 million q4 0.1986102

12 Non-Metro Counties q4 0.1263597

I probably fundamentally do not understand how tables relate to data frames.

Answer Source

I figured it out already.

```
as.data.frame.matrix(mytable)
```

does what I need -- apparently, the table needs to somehow be converted to a matrix in order to be appropriately translated into a data frame. I found more details on this as.data.frame.matrix() function for contingency tables at the Computational Ecology blog.