在使用R编写非常简单的验证代码时,我希望系统错误通知(即......中的错误)在我的字符串之前(例如n1< = 0)。它是这样做的 一个简单的字符串,但顺序是相反的,带有连接的字符串。非常感谢你的帮助。
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) :
答案 0 :(得分:1)
cat()
函数立即将其...
参数打印到控制台,除非您选择不(使用file
参数)。它的输出实际上不是字符串,而是类NULL
。由于它在stop()
之前进行评估,因此首先打印。
您可以将cat()
替换为paste()
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 )