【发布时间】:2015-10-16 07:31:22
【问题描述】:
我想知道为什么ifelse(1<2,print("true"),print("false")) 会返回
[1] "true"
[1] "true"
而ifelse(1<2,"true","false") 返回
[1] "true"
我不明白为什么ifelse 中的print 会两次返回"true"
【问题讨论】:
-
可能与this有关。
-
另请注意,
ifelse确实设计用于应用于向量,而不是标量,所以也许你最好还是使用if (1<2) print("true") else print("false")。 -
请注意,如果您分配它,例如
z <- ifelse(1 < 2, print("true"), print("false")),新对象将保持正确的结果。 -
一个古老的故事说,每当一个非程序员的家伙说出bug这个词,程序员就会死去。你必须拍手让他重新活过来。
-
ifelse(1 < 2, print(print("true")), print("false"))是另一种了解正在发生的事情的方法。然后反转运算符。
标签: r if-statement