首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >满足所有精确约束的case_when函数

问满足所有精确约束的case_when函数
EN

Stack Overflow用户
提问于 2021-11-03 12:48:23
回答 2查看 38关注 0票数 0

我在R中使用case_when()函数,因为我正在处理某段代码中的所有异常。我想我的问题很简单,但我不确定如何实现它。使用case_when()函数可以考虑多个参数(就像在任何其他语句中一样)。给出下面的例子;

代码语言:javascript
复制
a <- "aap"

b <- case_when(str_count(a,"a") > 1 ~ 1,
               str_count(a,"a") > 1 & str_count(a,"p") >= 1 ~ 2)

我想返回值2,但是因为返回值1的参数也满足了,所以它返回1而不是2。有没有简单的解决方法?亲切的问候

EN

回答 2

Stack Overflow用户

发布于 2021-11-03 12:56:09

你可以颠倒你的条件。另外,这里您的第二个条件不满足( aap中有一个p,不是>1)。如果您键入:

代码语言:javascript
复制
b <- case_when(str_count(a,"a") > 1 & str_count(a,"p") >= 1 ~ 2,str_count(a,"a") > 1 ~ 1)

它确实返回2。

票数 1
EN

Stack Overflow用户

发布于 2021-11-03 12:55:46

case_when在第一个TRUE条件下停止。这也是else条件(或“默认”,如果您愿意)最后出现的原因:

代码语言:javascript
复制
case_when(
  a ~ 'a is true and nothing else matters',
  b ~ 'a was not true, but b is, and nothing else matters',
  TRUE ~ 'none of the above was true'
)

交换这两个语句,你应该是好的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69825125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档