How to resolve error: Argument 1 must have names when using map( ) pluck( ) in R to list( )?

How to resolve error: Argument 1 must have names when using map( ) pluck( ) in R to list( )?

我有这个:

list(list(result="0001"),list(result="0002")) %>%
purrr::map(pluck, 'result') %>% 
dplyr::bind_rows() 

输出:错误:参数 1 必须有名称。

出现错误是因为列表结果"0001""0002"同名[1],输出:

[[1]]
[[1]]$result
[1] "0001" <---- [1]

[[2]]
[[2]]$result
[1] "0002" <---- [1]

n个case名字如何动态重启?预期输出:

[[1]]
[[1]]$result
[1] "0001" <---- [1]

[[2]]
[[2]]$result
[2] "0002" <---- [2]

可能它一定是 map() 和 bind_rows()

之间的某种转换或函数
purrr::map(pluck, 'result') %>%
???? 
dplyr::bind_rows() 

bind_rows(),你只需要事先将向量列表转换成dataframe的列表。所以,你可以这样做:

Reprex

  • 代码
library(purrr)
library(dplyr)

list(list(result="0001"),list(result="0002")) %>%
  purrr::map(pluck, 'result') %>% 
  purrr::map(., ~ data.frame(results = .)) %>% 
  bind_rows()
  • 输出
#>   results
#> 1    0001
#> 2    0002

reprex package (v2.0.1)

创建于 2022-03-04