rm(list=ls())
wide.format <- data.frame(
male = c(5, 3),
female = c(3, 2)
)
rownames(wide.format) <- c('seoul','busan')
wide.format
## male female
## seoul 5 3
## busan 3 2
unbox <- function(df){
cn <- colnames(df)
rn <- rownames(df)
result <- data.frame()
for(i in 1:length(rn)){
for(j in 1:length(cn)){
temp <-
data.frame(
rep(rn[i], df[i,j]),
rep(cn[j], df[i,j])
)
result <- rbind(result, temp)
}
}
colnames(result) <- paste('x', 1:ncol(result), sep='')
result
}
finish <- unbox(wide.format)
colnames(finish) <- c('region', 'sex')
finish
## region sex
## 1 seoul male
## 2 seoul male
## 3 seoul male
## 4 seoul male
## 5 seoul male
## 6 seoul female
## 7 seoul female
## 8 seoul female
## 9 busan male
## 10 busan male
## 11 busan male
## 12 busan female
## 13 busan female