如何解决问题运行purrr ::可能在〜tibble内进行错误恢复
我正在研究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,files= unzip_safe(.x,list = TRUE)$Name))
我收到以下错误:$ operator is invalid for atomic vectors
。
这是因为possibly
有点问题吗?
解决方法
失败的文件返回NA
,而您试图从中提取$Name
,这将返回错误。见
NA$NAme
NA $ NAme错误:$运算符对原子向量无效
从$Name
本身的成功文件中提取possibly
。试试:
library(purrr)
unzip_safe <- possibly(.f= ~unzip(.,list = TRUE)$Name,otherwise = NA)
files <- map_dfr(paths,~ tibble(path=.x,files = unzip_safe(.x))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。