How to expand data frame in R I'm having following problem while doing some analysis with R.
I have a dataframe like this:
Name | Group | Count
Person 1 | A | 3
Person 2 | A | 1
Person 3 | A | 0
Person 1 | B | 5 
Person 2 | B | 0
Person 3 | B | 1
Person 1 | C | 1

and I'd need to "expand" it (not sure if the right term) to be like this:
Person 1 | A
Person 1 | A
Person 1 | A
Person 2 | A
Person 1 | B
Person 1 | B

etc.
So it takes value of pair Person 1 and A (in this example, 3) and makes three rows with Person 1 and A and does so for every Person - Group -combination. Can't figure out any good words for searching online.
 A: You can use the untable function from the reshape package.
Given the above df (by @Gaël Laurans)
library(reshape)

expanded<-untable(df[,c(1,2)], num=df[,3])

name group
1   Person 1     A
1.1 Person 1     A
1.2 Person 1     A
2   Person 2     A
4   Person 1     B
4.1 Person 1     B
4.2 Person 1     B
4.3 Person 1     B
4.4 Person 1     B
6   Person 3     B

A: While it is a very useful package, I think reshape is overkill in this case, rep can do the job.
Here are some example data:
df <- data.frame(
     name=c("Person 1", "Person 2", "Person 3", "Person 1", "Person 2", "Person 3"),
     group=c("A", "A", "A", "B", "B", "B"),
     count=c(3,1,0,5,0,1))

Now, to “expand” it:
expanded <- data.frame(name = rep(df$name, df$count),
                       group = rep(df$group, df$count))

I could not find a way to work directly on the data frame off the top of my head so I am working on each variable separately and then reassembling them, which is a bit ugly but should be OK as long as you take care of always using the same variable for the counts.
A: And uncount from tidyr now gives the same result as above.
library(tidyr)
df %>% uncount(Count)

