我想在一个非常大的数据集上运行的东西。基本上,我想遍历文件夹中的所有文件,然后运行JSON上的函数就可以了。但是,我希望它跳过产生错误的文件。我建立了一个功能,使用tryCatch然而,只有当我使用函数lappy而不是parLapply。TryCatch与parLapply(并行包)在R
这是我为我的异常处理函数代码:
readJson <- function (file) {
require(jsonlite)
dat <- tryCatch(
{
fromJSON(file, flatten=TRUE)
},
error = function(cond) {
message(cond)
return(NA)
},
warning = function(cond) {
message(cond)
return(NULL)
}
)
return(dat)
}
,然后我打电话parLapply一个特征向量文件其中包含完整路径的JSON文件:
dat<- parLapply(cl,files,readJson)
当它到达不正确结束的文件时会产生错误,并且不会通过跳过有问题的文件来创建列表'dat'。 readJson函数应该减轻的是什么。
当我使用普通的乐器时,它的工作原理非常好。它会生成错误,但它仍会通过跳过错误的文件来创建列表。
关于如何使用parLappy并行处理异常处理的任何想法,以便它跳过有问题的文件并生成列表?
这个窍门!非常感谢!!! – user2905393