डेटा फ्रेम में कनवर्ट करने के लिए एक सूची है लेकिन मैं रूट नोड कॉलम खो रहा हूं:

my_list <- list(usdol = list(name = "Dollar", native = "US dollar"), dmk = list(name = "Mark", 
    native = "Deutsch Mark"))


> my_list
$usdol
$usdol$name
[1] "Dollar"

$usdol$native
[1] "US dollar"


$dmk
$dmk$name
[1] "Mark"

$dmk$native
[1] "Deutsch Mark"

QdapTools (list2df) का उपयोग करके इस तरह डेटा फ्रेम में कनवर्ट करना

 my_list %>% list2df()

Dollar          usdol           
US dollar       usdol           
Mark             dmk            
Deutsch Mark    dmk

वांछित परिणाम है:

code  name  secondary_name

usdol Dollar US dollar
dmk    Mark  Deutsch Mark
2
Forge 11 अक्टूबर 2019, 20:02

1 उत्तर

सबसे बढ़िया उत्तर

tidyr से unnest_wider के साथ एक विकल्प यहां दिया गया है

library(tibble)
library(tidyr)
tibble(col = my_list) %>%
      unnest_wider(col) %>%
      mutate(code = names(my_list))%>% 
      select(code, name, secondary_name = native)
# A tibble: 2 x 3
#  code  name   secondary_name
#   <chr> <chr>  <chr>         
#1 usdol Dollar US dollar     
#2 dmk   Mark   Deutsch Mark  

या base R का उपयोग कर रहे हैं

do.call(rbind, Map(cbind, lapply(my_list, stack), code = names(my_list)))
1
akrun 11 अक्टूबर 2019, 20:12