如果数据帧有0 obersvations然后停止执行如何停止R代码

时间:2016-06-09 11:18:05

标签: r dataframe

我有很多正在清理的考试数据但是处理后的一些数据没有遮挡,我已经将这段代码编写成了函数&我在一个循环中调用该函数,所以如果任何1个文件没有观察@check7数据帧我怎么能编码来停止正在进行的代码执行&如何才能直接显示当前学生roll.number的roll.number和score = 0,而不会出现错误'在aggregate.data.frame中出现错误,没有要汇总的行'任何帮助表示赞赏...

应该显示

Roll.number  Score
602200166      0

1 个答案:

答案 0 :(得分:0)

您应该可以使用stop功能。在check7下面添加以下内容:

 if(nrow(check7) == 0L) stop('Error in aggregate.data.frame that no rows to aggregate')

由于您说您正在运行循环,因此您还可以使用paste将迭代添加到邮件中。让我们说你的循环迭代器变量是" i。"然后,您可以按如下方式打印迭代:

if(nrow(check7) == 0L) stop(paste("Error in aggregate.data.frame", i, "no rows to aggregate")

如果错误发生在最后一行,即创建了总对象,您可以使用以下内容打印出哪个迭代产生了问题:

cat("we have reached test number", i, "at this point")

这将打印每次迭代,直到错误发生,这将让你弄清楚导致问题的测试。