a = list(color = c("red", "blue", "yellow"), team = c("A", "B"))
a
## $color
## [1] "red" "blue" "yellow"
##
## $team
## [1] "A" "B"
b = do.call(rbind, lapply(1:length(a), function(i) if(length(a[[i]]) != 1) { cbind(names(a)[i], a[[i]])} else {c(names(a)[i], a[[i]])}))
b
## [,1] [,2]
## [1,] "color" "red"
## [2,] "color" "blue"
## [3,] "color" "yellow"
## [4,] "team" "A"
## [5,] "team" "B"
class(b)
## [1] "matrix"
names(a)
## [1] "color" "team"
rep(names(a))
## [1] "color" "team"
rep(names(a), 3)
## [1] "color" "team" "color" "team" "color" "team"
unlist(a)
## color1 color2 color3 team1 team2
## "red" "blue" "yellow" "A" "B"
lapply(a, length)
## $color
## [1] 3
##
## $team
## [1] 2
a_df = data.frame(NAME = rep(names(a), lapply(a, length)), VALUE = unlist(a))
a_df
## NAME VALUE
## color1 color red
## color2 color blue
## color3 color yellow
## team1 team A
## team2 team B
names(a_df)
## [1] "NAME" "VALUE"
colnames(a_df)
## [1] "NAME" "VALUE"
rownames(a_df)
## [1] "color1" "color2" "color3" "team1" "team2"
c = a_df
rownames(c) = NULL
c
## NAME VALUE
## 1 color red
## 2 color blue
## 3 color yellow
## 4 team A
## 5 team B