美文网首页
生信技巧每日分享day30-R语言dplyr中case_when

生信技巧每日分享day30-R语言dplyr中case_when

作者: 江湾青年 | 来源:发表于2023-04-26 13:33 被阅读0次

tidyverse中的case_when()函数是一个非常强大的函数,可以用来进行多条件判断和赋值操作。首先,case_when()函数需要至少两个参数:一个是要进行判断的向量,另一个是要进行赋值的向量。例如:

library(tidyverse)

df <- tibble(x = 1:10)

df %>% 
  mutate(y = case_when(
    x < 5 ~ "low",
    x >= 5 & x < 8 ~ "medium",
    x >= 8 ~ "high"
  ))

以上代码根据x列的数字大小来给y列赋予不同的值,即:x < 5时,将y赋值为"low";x >= 5 & x < 8时,将y赋值为"medium";x >= 8时,将y赋值为"high"。

这个代码块中,我们创建了一个数据框df,其中包含一个名为x的向量,它的值从1到10。然后我们使用mutate()函数来创建一个新的向量y,用来存储根据x的值进行赋值的结果。

需要注意的是,case_when()函数中的条件是从上到下依次进行判断的,如果某个条件被满足了,就不会再继续进行后面的条件判断了。因此,我们需要将条件按照优先级从高到低进行排列。

除了基本的条件判断外,case_when()函数还支持一些常用的函数,例如is.na()、is.null()等。例如下面的代码:

df %>% 
  mutate(z = case_when(
    is.na(x) ~ "missing",
    x < 5 ~ "low",
    is.null(x) ~ "null",
    x >= 5 & x < 8 ~ "medium",
    x >= 8 ~ "high"
  ))

在这个代码块中,我们在判断条件中使用了is.na()和is.null()函数来判断x是否为缺失值或空值。需要注意的是,在判断缺失值时,我们需要将判断缺失值的条件放在最前面,否则后面的条件判断可能会出现错误。

相关文章

网友评论

      本文标题:生信技巧每日分享day30-R语言dplyr中case_when

      本文链接:https://www.haomeiwen.com/subject/wwmvddtx.html