代码之家  ›  专栏  ›  技术社区  ›  Tdebeus

Tidyr unnest函数似乎不起作用

  •  0
  • Tdebeus  · 技术社区  · 8 年前

    我正在尝试取消列出一个列表列,其中每行仅包含一个url。

    df <- files_small %>% 
      keep(has_xattrs) %>% 
      set_names(basename(.)) %>% 
      map_df(read_xattrs, .id = "file") %>% 
      filter(name == "com.apple.metadata:kMDItemWhereFroms") %>% 
      mutate(url = map(files_small,
                              ~ read_bplist(
                                get_xattr_raw(path = .x,
                                              name = "com.apple.metadata:kMDItemWhereFroms")
                              ) 
      )) %>% 
      select(file, url)
    

    dput :

    df <- structure(list(file = c("'s-Gravenhage_coalitieakkoord.pdf", 
    "Aa en Hunze_coalitieakkoord.pdf"), url = list(structure(list(
        plist = structure(list(array = structure(list(string = list(
            "https://denhaag.raadsinformatie.nl/document/6514256/2/RIS299794%20Coalitieakkoord%202018%202022"), 
            string = list()), .Names = c("string", "string"))), .Names = "array", version = "1.0")), .Names = "plist"), 
        structure(list(plist = structure(list(array = structure(list(
            string = list("https://aaenhunze.vvd.nl/uploaded/aaenhunze.vvd.nl/files/5ad8cd44682d8/coalitieakkoord-2018-2022-_definitief_16-april.pdf"), 
            string = list()), .Names = c("string", "string"))), .Names = "array", version = "1.0")), .Names = "plist"))), class = c("tbl_df", 
    "tbl", "data.frame"), row.names = c(NA, -2L), .Names = c("file", 
    "url"))
    
    
    > unnest(df, url)
    # A tibble: 2 x 2
      file                              url       
      <chr>                             <list>    
    1 's-Gravenhage_coalitieakkoord.pdf <list [1]>
    2 Aa en Hunze_coalitieakkoord.pdf   <list [1]>
    

    unnest(df, url) 似乎做不到它的工作。我做错什么了?

    1 回复  |  直到 8 年前
        1
  •  1
  •   Nicolas2    8 年前

    如果有多个嵌套列表,请尝试:

    df %>% rowwise %>% mutate(x=unlist(url))
    
    # # A tibble: 2 x 3
    #  file                              url        x                                                                                                                        
    #  <chr>                             <list>     <chr>                                                                                                                    
    #1 's-Gravenhage_coalitieakkoord.pdf <list [1]> https://denhaag.raadsinformatie.nl/document/6514256/2/RIS299794%20Coalitieakkoord%202018%202022                          
    #2 Aa en Hunze_coalitieakkoord.pdf   <list [1]> https://aaenhunze.vvd.nl/uploaded/aaenhunze.vvd.nl/files/5ad8cd44682d8/coalitieakkoord-2018-2022-_definitief_16-april.pdf