我有很多正在清理的考试数据但是处理后的一些数据没有遮挡,我已经将这段代码编写成了函数&我在一个循环中调用该函数,所以如果任何1个文件没有观察@check7数据帧我怎么能编码来停止正在进行的代码执行&如何才能直接显示当前学生roll.number的roll.number和score = 0,而不会出现错误'在aggregate.data.frame中出现错误,没有要汇总的行'任何帮助表示赞赏...
应该显示
Roll.number Score
602200166 0
答案 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")
这将打印每次迭代,直到错误发生,这将让你弄清楚导致问题的测试。