【发布时间】:2017-05-18 14:22:12
【问题描述】:
这里我有这个函数:(删除对象是我们不想计算的函数的名称)
func <- function(x, remove=NULL) {
if(class(x)%in%"igraph"){
doclist <- list("edgelist"=function(x) as.edgelist(x),
"adjacencyMatrix"=function(x)as_adjacency_matrix(x),
"incidenceMatrix"=function(x) as_incidence_matrix(x, 0.001),
"data.frame"=function(x) as_data_frame(x))
sapply(doclist[setdiff(names(doclist), remove)], function(f) f(n))}
else stop("The input is not an igraph object")
}
如何在这个函数中使用 tryCatch?如果 'doclist' 中的任何函数遇到错误,'doclist' 的下一行将执行。最终结果消息警告调用有错误的函数的名称和错误的上下文。
【问题讨论】:
-
您的问题无法理解。你能把它们写得更清楚吗,例如用几个简短的句子/问题,还是使用更多的标点符号?
-
@user1310503 抱歉造成误会。我试图尽可能地改进。希望我能正确表达我的意思。
-
如果
doclist中的任何函数失败,您希望它继续运行,最后您希望它给出包含这些函数名称和错误消息的警告。对吗? -
@user1310503 确切地说,当然是作为数据框的计算值。