首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R- stop(string) vs stop(cat(string1,...))

R- stop(string) vs stop(cat(string1,...))
EN

Stack Overflow用户
提问于 2015-01-14 02:06:43
回答 1查看 239关注 0票数 1

在使用下面的R编写非常简单的验证代码时,我更喜欢系统错误通知(即...中的错误)。放在字符串前面(例如n1 <= 0)。它使用一个简单的字符串执行此操作,但顺序正好相反,使用了一个连接的字符串。非常感谢你的帮助。

代码语言:javascript
复制
chk = function(n1,n2,n3){
  if (n1 <= 0){
    stop("n1 <=0")
  }
  if (n3 > n2){
    stop(cat("n3(=", n3 ,")>n2(=", n2, ")\n"))
  }
}

chk(0,1,2)
# prints --> Error in chk(0, 1, 2) : n1 <=0
chk(1,1,2)
# prints --> n3(= 2 )>n2(= 1 )
#            Error in chk(1, 1, 2) : 
EN

回答 1

Stack Overflow用户

发布于 2015-01-14 02:14:20

cat()函数会立即将其...参数输出到控制台,除非您选择不将其输出到控制台(使用file参数)。它的输出实际上不是字符串,而是NULL类。因为它在stop()之前被计算,所以它首先打印。

您可以通过用paste()替换cat()来解决此问题

代码语言:javascript
复制
chk = function(n1,n2,n3){
    if (n1 <= 0){
        stop("n1 <=0")
    }
    if (n3 > n2){
        stop(paste("n3(=", n3 ,")>n2(=", n2, ")\n"))
    }
}

chk(0,1,2)
# Error in chk(0, 1, 2) : n1 <=0
chk(1,1,2)
# Error in chk(1, 1, 2) : n3(= 2 )>n2(= 1 )  
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27928604

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档