Skip to Content
R 语言经典实例(原书第 2 版)
book

R 语言经典实例(原书第 2 版)

by J.D. Long, Paul Teetor
June 2020
Beginner to intermediate
522 pages
9h 6m
Chinese
China Machine Press
Content preview from R 语言经典实例(原书第 2 版)
466
15
15.8 防止错误
15.8.1 问题
你预计会有致命错误的可能性,但需要继续处理而不是完全停止。
15.8.2 解决方案
使用 possibly 函数来“包装”有问题的代码。它会捕获错误并让你对它们做出
响应。
15.8.3 讨论
添加包 purrr 中包含一个名为 possibly 的函数,它接受两个参数。第一个参数是
一个函数,possibly 会防止该函数出现故障。第二个参数是一个名为 otherwise
的值。
这里有一个具体的例子。read.csv 函数尝试读取文件,但如果文件不存在则程序会暂
停。这可能是不受欢迎的。我们可能希望恢复程序并继续。
我们可以用这种方式将 read.csv 函数“包装”在保护层中:
library(purrr)
safe_read <- possibly(read.csv, otherwise=NULL)
这可能看起来很奇怪,但 possibly 将会返回一个
新函数
。这里名为 safe_read 的新
函数的行为与旧函数 read.csv 完全相同,但有一个非常重要的区别。当 read.csv
失败并停止时,safe_read 将返回 otherwise 的值(即 NULL)并继续处理。(如果
read.csv 成功,则会获得通常的结果,即一个数据框。)
可以按如下方式使用 safe_read 来处理可选文件:
details = safe_read("details.csv") # Try to read details.csv file
if (is.null(details)) ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

机器学习实战:基于Scikit-Learn、Keras 和TensorFlow (原书第2 版)

机器学习实战:基于Scikit-Learn、Keras 和TensorFlow (原书第2 版)

Aurélien Géron
大规模数据分析和建模:基于 Spark 与 R

大规模数据分析和建模:基于 Spark 与 R

Javier Luraschi, Kevin Kuo, Edgar Ruiz
管理Kubernetes

管理Kubernetes

Brendan Burns, Craig Tracey

Publisher Resources

ISBN: 9787111656814