我有一个程序,可以做一些数据分析,只有几百行.

在程序的早期,我想做一些质量控制,如果没有足够的数据,我希望程序终止并返回到R控制台.否则,我希望执行其余的代码.

我试过breakbrowserquit,但都没有停止程序其余部分的执行(quit停止执行,并完全退出R,这不是我希望发生的事情).我最后的办法是创建一个if-else声明,如下所示:

 if(n < 500){}
 else{*insert rest of program here*}

但这似乎是糟糕的编码实践.我错过什么了吗?

推荐答案

如果希望程序产生错误,可以使用stopifnot()函数:

foo <- function(x) {
    stopifnot(x > 500)
    # rest of program
}

R相关问答推荐

在处理因素时,Base R grep家族比stringr变体快得多

如何将多个数据帧附加到R中的多个相应的CSV文件中?

根据固定值范围在tible中添加新行

跨列应用多个摘要函数:summerise_all:列表对象无法强制为double类型'

查找满足SpatRaster中条件的单元格位置

在位置周围设定一个半径并识别该半径内的其他位置

在"gt"表中添加第二个"groupname_col",而不连接列值

将数据集中的值增加到当前包含的最大值

在R中使用download. file().奇怪的URL?

如何通过ggplot2添加短轴和删除长轴?

使用R中的正则表达式将一列分割为多列

您是否可以折叠R中的重复行,同时保留基于所选列的值?

解析R函数中的变量时出现的问题

在保留列表元素属性的同时替换列表元素

为什么在写入CSV文件时Purrr::Pwalk不起作用

通过初始的shiny 应用更新部署的shiny 应用的数据和参数,其中部署的应用程序显示为URL

将列的值乘以在不同数据集中找到的值

分隔日期格式为2020年7月1日

如何在访问之前下载的输入时同时上传和处理所有指定的shiny 输入?

如何创建一个由一个连续变量和一个因素变量组成的复杂方框图?