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

如何命名数据帧以便在列表中查找

  •  1
  • cephalopod  · 技术社区  · 6 年前

    我有一个返回数据帧的函数。我将此函数用于 furrr::future_map2 所以我得到了一个包含几个数据帧的列表。

    • 我想要的是能够使用 name 输入函数以命名数据框,以便我可以按名称搜索返回列表。

    实例

    test <- function(x, name){
       require(tidyverse)
       z <- data.frame(x+1) %>% stats::setNames(., "a")
    
       return(z)
     }
    
    
    furrr::future_map2(1:3, c("a", "b", "c"), ~test(.x, .y))
    
    • 列表中的第一个df是 a ,第二个 b 等等
    • 命名应在函数内完成
    • 选择 names(list.return) <- vector.of.list.names.in.character 不适合我。

    请帮忙

    2 回复  |  直到 6 年前
        1
  •  1
  •   Prem    6 年前

    这个怎么样?

    mapply(
      function(x,y){
        data.frame(y+1) %>% setNames(., x)
        }, 
      c("a", "b", "c"), 1:3, USE.NAMES = T, SIMPLIFY = F)
    

    输出为:

    $a
      a
    1 2
    
    $b
      b
    1 3
    
    $c
      c
    1 4
    
        2
  •  0
  •   cephalopod    6 年前

    @DavidVaughan提供了解决方案 https://github.com/DavisVaughan/furrr/issues/10