Imagine that I have the following list
> test <- list(\"a\" = 1, \"b\" = 2)
Each element of the list has a name :
>
Based on the expected output showed
make_attr_names <- function(x){
x1 <- test[[x]]
attr(x1, 'names') <- c('items','type', x)
x1}
lapply(names(test), make_attr_names)
#[[1]]
# [,1] [,2] [,3]
#[1,] 1 1 1
#attr(,"names")
#[1] "items" "type" "a"
#[[2]]
# [,1] [,2] [,3]
#[1,] 2 2 2
#attr(,"names")
#[1] "items" "type" "b"
Or based on the description
make_df <- function(x){
setNames(as.data.frame(test[[x]]), c('items', 'type', x))}
lapply(names(test), make_df)
#[[1]]
# items type a
#1 1 1 1
#[[2]]
# items type b
#1 2 2 2