Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Convert list to a two column data frame in R

Tags:

r

I have a list looks like this:

$ key_1
[1] "value_1" "value_2" "value_3"

$ key_2
[1] "value_1" "value_4" "value_5"

$ key_3
[1] "value_2" "value_5" "value_6"

...
...
lots of data

How to convert it to a two column data frame looks like this:

head(df)

    Key     Value
1   key_1   value_1, value_2, value_3
2   key_2   value_1, value_4, value_5
3   key_3   value_2, value_5, value_6
....
....

Thanks in advance

like image 761
Gentlemiao Avatar asked Jan 25 '26 17:01

Gentlemiao


1 Answers

You can use stack to get a named list to dataframe and then use aggregate :

aggregate(values~ind, stack(lst), toString)

Using tidyverse functions.

tibble::enframe(lst) %>%
  dplyr::mutate(value = purrr::map_chr(value, toString))

#  name  value                    
#  <chr> <chr>                    
#1 key1  value_1, value_2, value_3
#2 key2  value_1, value_4, value_5
#3 key3  value_2, value_5, value_6

data

lst <- list(key1 = c("value_1", "value_2" ,"value_3"), 
            key2 = c("value_1", "value_4", "value_5"), 
            key3 = c("value_2", "value_5", "value_6"))
like image 84
Ronak Shah Avatar answered Jan 27 '26 05:01

Ronak Shah



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!