【问题标题】:Issue running purrr::possible for error recovery inside ~ tibble问题运行 purrr::possible for error recovery inside ~ tibble
【发布时间】:2020-10-08 21:13:16
【问题描述】:

我正在研究 Hadley Wickham 的“函数式编程的乐趣(用于数据科学)”(可在 youtube 上获得)关于 purrr 的讲座中的一个示例,并希望使用 possibly() 添加错误恢复来处理任何 zip 文件无法读取。

他的一些代码;

paths <- dir_ls("NSFopen_Alldata/", glob= ".zip")

files<- map_dfr(paths, ~ tibble(path=.x, files= unzip(.x, list = TRUE)$Name))

使用possibly()添加错误恢复;

unzip_safe <- possibly(.f= unzip, otherwise = NA)

files<- map_dfr(paths, ~ tibble(path=.x, files= unzip_safe(.x, list = TRUE)$Name))

我收到以下错误:$ operator is invalid for atomic vectors

这是因为possibly 在小标题中吗?

【问题讨论】:

    标签: r tidyr purrr


    【解决方案1】:

    失败的文件返回NA,而您尝试从中提取$Name,这会返回错误。见

    NA$NAme
    

    NA$NAme 中的错误:$ 运算符对原子向量无效

    possibly本身的成功文件中提取$Name。试试看:

    library(purrr)
    unzip_safe <- possibly(.f= ~unzip(., list = TRUE)$Name, otherwise = NA)
    files <- map_dfr(paths, ~ tibble(path=.x, files = unzip_safe(.x))
    

    【讨论】:

      猜你喜欢
      • 2019-09-06
      • 2018-10-02
      • 1970-01-01
      • 2018-06-23
      • 2022-11-25
      • 1970-01-01
      • 1970-01-01
      • 2021-03-09
      • 1970-01-01
      相关资源
      最近更新 更多