Untable {DescTools} | R Documentation |

Recreates the data.frame out of a contingency table x.

```
Untable(x, ...)
## S3 method for class 'data.frame'
Untable(x, freq = "Freq", rownames = NULL, ...)
## Default S3 method:
Untable(x, dimnames = NULL, type = NULL, rownames = NULL, colnames = NULL, ...)
```

`x` |
a numeric vector, a matrix, a table or a data.frame. If x is a vector, a matrix or a table it is interpreted as frequencies which are to be inflated to the original list. |

`dimnames` |
the dimension names of x to be used for expanding. Can be used to expand a weight vector to its original values. If set to |

`type` |
defines the data type generated. This allows to directly define factors or ordered factors, but also numeric values. See examples. |

`rownames` |
A names vector for the rownames of the resulting data.frame. If set to |

`colnames` |
A names vector for the colnames of the resulting data.frame. If set to |

`freq` |
character, the name of the frequency variable in case x is a data.frame. |

`...` |
further arguments passed to or from functions (not used here). |

For x being a vector this reduces to `rep(..., n)`

with n as vector (which is not supported by `rep()`

). `NA`

s in the table will be treated as 0 without raising an error.

a data.frame with the detailed data (even if x was a 1-dimensional table)

Andri Signorell <andri@signorell.net>

`expand.grid`

, `rep`

, `gl`

, `xtabs`

```
d.titanic <- Untable(Titanic)
str(d.titanic)
# ... not the same as:
data.frame(Titanic)
tab <- table(set1=sample(letters[1:5], size=40, replace=TRUE),
set2=sample(letters[11:15], size=40, replace=TRUE))
Untable(tab)
# return a numeric vector by setting type and coerce to a vector by [,]
Untable(c(6,2,2), type="as.numeric")[,]
# how to produce the original list based on frequencies, given as a data.frame
d.freq <- data.frame(xtabs(Freq ~ Sex + Survived, data=Titanic))
# a data list with each individual
d.data <- Untable( xtabs(c(1364, 126, 367, 344) ~ .,
expand.grid(levels(d.freq$Sex),levels(d.freq$Survived))))
head(d.data)
# expand a weights vector
Untable(c(1,4,5), dimnames=list(c("Zurich","Berlin","London")))
# and the same with a numeric vector
Untable(c(1,4,5), dimnames=list(c(5,10,15)), type="as.numeric")[,]
# ... which again is nothing else than
rep(times=c(1,4,5), x=c(5,10,15))
# the data.frame interface
d.freq <- data.frame(f1=c("A","A","B","B"), f2=c("C","D","C","D"), Freq=c(1,2,3,4))
Untable(d.freq)
```

[Package *DescTools* version 0.99.51 Index]