R语言 case_when 函数

本文介绍了R语言中case_when函数的使用要点。该函数在条件不匹配时返回NA,并按顺序进行条件判断。示例代码表明,如果不包含TRUE ~ as.character(x)条件,数字将被转换为字符而非返回NA,这表明case_when函数可与其他函数配合使用,不仅限于tidyverse库。
摘要由CSDN通过智能技术生成

case_when

要点有两个

  1. 不匹配的时候会返回 NA,而不是保持不变
  2. 根据顺序进行条件判断,顺序很重要

下面这段代码,

x <- 1:50
case_when(
  x %% 35 == 0 ~ "fizz buzz",
  x %% 5 == 0 ~ "fizz",
  x %% 7 == 0 ~ "buzz",
  TRUE ~ as.character(x)
)

如果不包含TRUE ~ as.character(x),会返回

[1] NA          NA          NA          NA          "fizz"      NA         
 [7] "buzz"      NA          NA          "fizz"      NA          NA         
[13] NA          "buzz"      "fizz"      NA          NA          NA         
[19] NA          "fizz"      "buzz"      NA          NA          NA         
[25] "fizz"      NA          NA          "buzz"      NA          "fizz"     
[31] NA          NA          NA          NA          "fizz bu
R语言中,case_when函数是一种强大且灵活的条件判断函数。它可以根据多个条件对数据进行逐行判断,并返回相应的结果。case_when函数的基本语法如下所示: case_when( condition1 ~ result1, condition2 ~ result2, ... ) 其中,condition1、condition2等是条件,用来判断数据是否满足某个条件;result1、result2等是结果,用来指定当条件满足时返回的结果。case_when函数按照条件的顺序逐个判断,当满足某个条件时,即返回对应的结果。如果所有条件都不满足,则返回NA。 举个例子,假设有一个变量x,它的取值范围是1到50。我们想要根据x的取值对其进行分类,如果x能被35整除,返回"fizz buzz";如果x能被5整除,返回"fizz";如果x能被7整除,返回"buzz";否则返回x的字符形式。可以使用如下代码实现: x <- 1:50 case_when( x %% 35 == 0 ~ "fizz buzz", x %% 5 == 0 ~ "fizz", x %% 7 == 0 ~ "buzz", TRUE ~ as.character(x) ) 在上述代码中,我们使用case_when函数对x进行分类,并根据条件进行判断,返回相应的结果。最后,我们得到了一个向量,其中包含了根据条件判断得到的结果。这样,我们就可以根据不同的条件对数据进行分类处理了。 总结起来,case_when函数R语言中用于条件判断的函数,它的灵活性使得我们可以根据多个条件对数据进行逐行判断,并返回相应的结果。通过合理运用case_when函数,我们可以更加方便地处理和分析数据。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [R语言中的case_when函数和ifelse函数实战](https://blog.csdn.net/PixelCoder/article/details/132234595)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [R语言 case_when 函数](https://blog.csdn.net/songbaiyao/article/details/107011695)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值