R语言中的函数15:tryCatch()

本文介绍了R语言中tryCatch()函数的使用方法,它能根据表达式执行时产生的Warning或Error进行相应操作。通过示例展示了如何在出现警告或错误时执行特定代码,并控制函数返回值。在实例中,处理了data.table包中dcast函数产生的警告信息。
摘要由CSDN通过智能技术生成

介绍

tryCatch()函数可以根据表达式的Warning或者Error信息做出相应的操作。

函数用法

tryCatch({
	expr
}, warning = function(w){
# 这里是出现warning状态时,应该怎么做,可以用print打印出来,可以执行其它命令
}, error = function(e){
# 这里时出现Error状态时,应该怎么做,可以用print打印出来,也可以执行其它命令
},finally = {
# 这是运行正常时,应该怎么做,可以用print打印出来,也可以执行其它命令
})

实例

library(data.table)
dd = data.frame(ID = 1:10,y= rnorm(10))
dd

# warning
re1 = dcast(dd,y~.)
re1

这个时候会报告warning的信息:

> re1 = dcast(dd,y~.)
Using 'y' as value column. Use 'value.var' to override
Warning message:
In dcast(dd, y ~ .) :
  The dcast generic in data.table has been passed a data.frame and will attempt to redirect to the reshape2::dcast; please note that reshape2 is deprecated, and this redirection is now deprecated as well. Please do this redirection yourself like reshape2::dcast(dd). In the next version, this warning will become an error.

如果使用tryCatch()函数:


re1 = tryCatch({
  dcast(dd,y~.) # warning
  # aaaaa # error

},warning = function(w){
  2
  print("warning")
},error = function(e){
  3
  print("error")
})
re1
# warning
re1 = tryCatch({
  dcast(dd,y~.) # warning
  # aaaaa # error
  
},warning = function(w){
  2
  print("warning")
  6
},error = function(e){
  3
  print("error")
})
re1
#[1] 6

可见tryCatch()返回的值是函数中的最后一行代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值