繁体   English   中英

为什么 case_when 在这里有两个不同的输出?

[英]Why does case_when have two different outputs here?

当我使用两种不同的 case_when 时,我无法理解为什么输出会有所不同:

选项1:

x = 5
y = print("goodmorning")
z = print("goodafternoon")
q = print("goodevening")
case_when(x > 3 ~ y, x < 8 ~ z) 

输出 1:

[1] "goodmorning"

选项 2:

x = 5
case_when(x > 3 ~ print("goodmoring"), x < 8 ~ print("goodafternoon"))

输出 2:

[1] "goodmoring"
[1] "goodafternoon"
[1] "goodmoring"

有人可以告诉我这如何导致两个完全不同的输出。 我相信 case_when 是顺序的,并且当第一次满足 a 条件时它会跳出 case_case 并且这似乎适用于第一段代码,但为什么它不适用于第二段代码?

引用帮助页面(强调我的),

case_when() 计算所有 RHS 表达式,然后通过提取选定的(通过 LHS 表达式)部分来构造其结果

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM