使用ifelse时多次执行

时间:2015-03-08 00:44:58

标签: r if-statement

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)"
  1. 为什么这次打印两次?感谢

  2. 我可以在这里使用某种错误处理程序吗?

1 个答案:

答案 0 :(得分:1)

您正在函数中显式调用print并返回值。如果将函数的结果分配给变量,则第二个&#34; print&#34;被抑制了。

> x <- s(v, k)
[1] "error,k>length(v)"

使用invisible也可以实现这一点。

> invisible(s(v, k))
[1] "error,k>length(v)"