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