使用 ifelse 时多次执行
multiple execution when using ifelse
my code:
s<-function(v,k){
ifelse(k>length(v),print("error,k>length(v)"),return(v-k))
}
v=1:5
k=6
s(v,k)
输出:
> s(v,k)
[1] "error,k>length(v)"
[1] "error,k>length(v)"
为什么要打印两次?谢谢
我可以在这里使用某种错误处理程序吗?
您正在函数中显式调用 print
并返回值。如果将函数的结果分配给变量,则第二个 "print" 被抑制。
> x <- s(v, k)
[1] "error,k>length(v)"
这也可以使用 invisible
来实现。
> invisible(s(v, k))
[1] "error,k>length(v)"
my code:
s<-function(v,k){
ifelse(k>length(v),print("error,k>length(v)"),return(v-k))
}
v=1:5
k=6
s(v,k)
输出:
> s(v,k)
[1] "error,k>length(v)"
[1] "error,k>length(v)"
为什么要打印两次?谢谢
我可以在这里使用某种错误处理程序吗?
您正在函数中显式调用 print
并返回值。如果将函数的结果分配给变量,则第二个 "print" 被抑制。
> x <- s(v, k)
[1] "error,k>length(v)"
这也可以使用 invisible
来实现。
> invisible(s(v, k))
[1] "error,k>length(v)"