Em Qua 15 jun. 2016, às 13:10, Patrizio Frederic escreveu: > Dear R-users, > I've a problem that puzzle me > > suppose I have a two way contigency table > > a <- sample(al <- letters[1:10],100,T) > b <- sample(bl <- LETTERS[1:5],100,T) > ab <- cbind(a,b) > > ddd <- (xtabs(data = ab)) > ddd <- as.matrix(ddd) > > the question is: how do I reverse the code, thus how do I get raw data > (object ab) from ddd?
I believe packages reshape and reshape2 could help, although I don't use them. a <- sample(al <- letters[1:10],100,T) b <- sample(bl <- LETTERS[1:5],100,T) ab <- cbind(a,b) ddd <- (xtabs(data = ab)) ddd <- as.matrix(ddd) df <- expand.grid(dimnames(ddd), stringsAsFactors = FALSE) df$freq <- as.vector(ddd) ab2 <- as.matrix(df[rep(seq.int(nrow(df)), df$freq), 1:2]) all.equal(ab2[order(ab2[, c("a", "b")])], ab[order(ab[, c("a", "b")])]) Hope that helps, Leonardo Ferreira Fontenelle ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.