r语言 case_when
时间: 2023-10-06 22:11:37 浏览: 138
在R语言中,case_when函数是dplyr包中的一个函数,用于进行多条件的判断。它可以根据不同条件的结果返回相应的值。通过组合case_when函数和str_detect函数,可以实现对字符串进行条件判断。
你提供的代码是一个通用的批量生成case_when判断的函数。它接受三个参数,分别是原始数据x、判断条件pattern和结果result。函数会根据传入的pattern和result生成对应的case_when语句,并将其作为字符串返回。然后通过eval(parse(text=...))的方式将这个字符串转化为可执行的函数。
通过调用allCaseWhen函数,你可以方便地批量生成多个case_when语句,避免了代码的重复和维护的困难。
相关问题
R语言case_when
R语言中的`case_when`函数是`dplyr`包中的一个函数,它可以用于根据一系列条件对变量进行分类。`case_when`函数的语法类似于`ifelse`函数,但是它可以处理更复杂的条件。`case_when`函数的基本语法如下:
```
case_when(
条件1 ~ 结果1,
条件2 ~ 结果2,
...
)
```
其中,`条件`可以是任何逻辑表达式,`结果`可以是任何R对象。`case_when`函数会按照条件的顺序依次检查每个条件,如果条件为`TRUE`,则返回对应的结果。如果所有条件都不满足,则返回`NA`。`case_when`函数可以嵌套使用,也可以和其他函数一起使用,例如`mutate`函数。
下面是一些例子:
```
# 根据身高和体重判断人的类型
case_when(
height > 200 | mass > 200 ~ "large",
species == "Droid" ~ "robot",
TRUE ~ "other"
)
# 根据数字判断fizz buzz
x <- 1:50
case_when(
x %% 35 == 0 ~ "fizz buzz",
x %% 5 == 0 ~ "fizz",
x %% 7 == 0 ~ "buzz",
TRUE ~ as.character(x)
)
# 使用case_when和mutate对星球大战人物进行分类
starwars %>%
select(name:mass, gender, species) %>%
mutate(
type = case_when(
height > 200 | mass > 200 ~ "large",
species == "Droid" ~ "robot",
TRUE ~ "other"
)
)
```
r语言case_when
在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 ]
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)