R中case when
时间: 2023-11-06 17:08:08 浏览: 28
R中的case when语句可以使用dplyr包中的case_when()函数实现。该函数可以根据一系列条件对变量进行分类,并返回相应的值。下面是一个简单的例子:
```
library(dplyr)
df <- data.frame(x = c(1, 2, 3, 4, 5))
df %>%
mutate(y = case_when(
x < 2 ~ "A",
x < 4 ~ "B",
TRUE ~ "C"
))
```
在上面的例子中,我们使用case_when()函数将x变量分为三类,并将结果存储在y变量中。第一个条件是x < 2,如果满足这个条件,y的值将被设置为"A"。第二个条件是x < 4,如果满足这个条件,y的值将被设置为"B"。最后一个条件是TRUE,如果前面的条件都不满足,y的值将被设置为"C"。
相关问题
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函数是dplyr包中的一个函数,用于进行多条件的判断。它可以根据不同条件的结果返回相应的值。通过组合case_when函数和str_detect函数,可以实现对字符串进行条件判断。
你提供的代码是一个通用的批量生成case_when判断的函数。它接受三个参数,分别是原始数据x、判断条件pattern和结果result。函数会根据传入的pattern和result生成对应的case_when语句,并将其作为字符串返回。然后通过eval(parse(text=...))的方式将这个字符串转化为可执行的函数。
通过调用allCaseWhen函数,你可以方便地批量生成多个case_when语句,避免了代码的重复和维护的困难。