如何使用“模拟”运行模拟;试一试;在R中运行,只保留有效的结果

如何使用“模拟”运行模拟;试一试;在R中运行,只保留有效的结果,r,subset,R,Subset,我正在使用“try”函数创建一些子集,但我无法仅保留使用“try”函数得到的结果。下面是我的代码行 list_shp_Deforested_2000_Africa <- lapply(list_shp_FC_Africa, function(x){try(x[x$D_90_00!=100,],)}) list\u shp\u Deforested\u 2000\u Africa当您询问try功能时,您应该先阅读help(try)。示例中的最后一行是您感兴趣的内容(您应该用list\u s

我正在使用“try”函数创建一些子集,但我无法仅保留使用“try”函数得到的结果。下面是我的代码行

list_shp_Deforested_2000_Africa <- lapply(list_shp_FC_Africa, function(x){try(x[x$D_90_00!=100,],)})

list\u shp\u Deforested\u 2000\u Africa当您询问
try
功能时,您应该先阅读
help(try)
。示例中的最后一行是您感兴趣的内容(您应该用
list\u shp\u Deforested\u 2000\u Africa
替换
res


您可以
筛选列表
以不包括继承“try error”的列表

或者,如果使用了
tryCatch
并在出现错误时返回
NULL
,则可能会更干净

L <- lapply(1:10, function(x) tryCatch(if(runif(1) > 0.5) stop() else 42, error=function(e) NULL))
Filter(length, L)    
l0.5)stop()else 42,error=function(e)NULL)
过滤器(长度,L)
我是这样做的。
Filter(function(x) !inherits(x, "try-error"), list_shp_Deforested_2000_Africa)
L <- lapply(1:10, function(x) tryCatch(if(runif(1) > 0.5) stop() else 42, error=function(e) NULL))
Filter(length, L)