当我使用两个不同的case\u case 时,我无法理解为什么输出不同:

选项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\u是按顺序的,当第一次满足a条件时,它会跳出case\u,这似乎适用于第一段代码,但为什么不适用于第二段代码?

推荐答案

引用帮助页(我的重点),

case_when() evaluates all RHS expressions,然后通过提取选定部分(通过LHS表达式)构建其结果

R相关问答推荐

从多个前置日期中获取最长日期

ggplot geom_smooth()用于线性回归虚拟变量-没有回归线

如何 bootstrap glm回归、估计95%置信区间并绘制它?

在不安装软件包的情况下测试更新

如何直接从Fortran到R的数组大小?

R函数‘paste`正在颠倒其参数的顺序

为什么我的基准测试会随着样本量的增加而出现一些波动?

WRS2包中带有bwtrim的简单ANOVA抛出错误

如何在PrePlot()中将多个元素设置为斜体

在具有多个响应变量的比例堆叠条形图上方添加总计

如何计算每12行的平均数?

通过初始的shiny 应用更新部署的shiny 应用的数据和参数,其中部署的应用程序显示为URL

有没有办法通过str_Detect()或其他字符串匹配函数来连接两个长度不等的数据帧?

如何将宽格式的患者信息数据高效地转换为患者计数的时间序列?

R-找出存在其他变量的各种大小的所有组合

如何使用grepl()在数据帧列表中 Select 特定字符串?

在REST API中使用参数R

如何创建一个由一个连续变量和一个因素变量组成的复杂方框图?

通过不完全重叠的多个柱连接

R:部分修改矩阵对角线的有效方法