在R中使用ifelse()时出现返回值异常,将结果返回两次。
> ifelse( T,print("Passed"),print("Failed"))#为什么会输出两次结果呢?
[1] "Passed"
[1] "Passed"
这是因为ifelse()总是会返回一个值,print()被当成一个函数被调用,从而输出"Passed",但是 print()也在返回他自己的的值。很绕,举个例子:
> ifelse( T,print("Passed"),print("Failed"))#为什么会输出两次结果呢?
[1] "Passed"
[1] "Passed"
> ifelse( T,"Passed","Failed")#只有一次
[1] "Passed"
更加具体的解释参看此处。