首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用mutate和case_when (R)通过多个条件创建新变量的函数

在R语言中,可以使用mutate和case_when函数通过多个条件创建新变量。

mutate函数是dplyr包中的一个函数,它用于在数据框中添加新的变量或修改已有的变量。它的基本语法是:

代码语言:txt
复制
mutate(data, new_variable = expression)

其中,data是要操作的数据框,new_variable是新变量的名称,expression是用于计算新变量的表达式。

case_when函数也是dplyr包中的一个函数,它可以根据多个条件进行条件判断,并根据不同的条件返回不同的值。它的基本语法是:

代码语言:txt
复制
case_when(condition1 ~ value1,
          condition2 ~ value2,
          ...
          conditionN ~ valueN,
          TRUE ~ default_value)

其中,condition1、condition2等是条件表达式,value1、value2等是对应条件为真时的返回值,TRUE ~ default_value是当所有条件都不满足时的默认返回值。

通过结合mutate和case_when函数,可以实现根据多个条件创建新变量的功能。例如,假设有一个名为df的数据框,其中包含了一个名为score的变量,我们想根据score的值创建一个新变量grade,可以使用以下代码:

代码语言:txt
复制
library(dplyr)

df <- df %>%
  mutate(grade = case_when(
    score >= 90 ~ "A",
    score >= 80 ~ "B",
    score >= 70 ~ "C",
    score >= 60 ~ "D",
    TRUE ~ "F"
  ))

上述代码中,根据score的值,将其分为A、B、C、D、F五个等级,并将结果保存在名为grade的新变量中。

推荐的腾讯云相关产品和产品介绍链接地址:

  • 腾讯云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 腾讯云云数据库MySQL版:https://cloud.tencent.com/product/cdb_mysql
  • 腾讯云云原生容器服务(TKE):https://cloud.tencent.com/product/tke
  • 腾讯云人工智能(AI):https://cloud.tencent.com/product/ai
  • 腾讯云物联网(IoT):https://cloud.tencent.com/product/iotexplorer
  • 腾讯云移动开发(移动推送):https://cloud.tencent.com/product/umeng
  • 腾讯云对象存储(COS):https://cloud.tencent.com/product/cos
  • 腾讯云区块链服务(BCS):https://cloud.tencent.com/product/bcs
  • 腾讯云虚拟专用网络(VPC):https://cloud.tencent.com/product/vpc
  • 腾讯云安全加速(DDoS防护):https://cloud.tencent.com/product/ddos
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

R&Python Data Science 系列:数据处理(2)

1 衍生字段函数 主要有两个函数mutate()transmute(),两个函数在PythonR使用方法相同,这两个函数本身有点区别:mutate()函数保留原来所有列,然后新增一列;transmute...2 条件函数 这里介绍3个条件函数,if_else()、case_when()、between()函数,Python包dfplyR包dplyr中都是这3个函数,在用法上有点细微差别,日常中使用最多...而且if_else()函数可以嵌套使用,不过当条件判断超过2个时候,建议使用case_when()函数。...注意:python在jupyter中使用管道函数换行书写代码时候需要用()把代码括起来。 2.2 case_when函数 用于多条件赋值,评分卡Woe赋值时候使用起来很方便。...注意:case_when函数在PythonR语言中使用时候有点区别,请留意。

75010

R语言批量生成CaseWhen解决方案

大家好,又见面了,我是你们朋友全栈君。 近期写R代码,经常用dplyr::case_when结合stringr::str_detect进行条件判断。...痛点:判断条件可能会改或增删,全写在case_when里,代码冗余且不利于复制维护,stackoverflow找了一圈,没发现好解决方案,干脆自己写了一个通用代码以自动生成批量case_when判断...) 使用示例: 初始表tibble(fruit=stringr::fruit) 想实现字母a开头为’starts with a’,字母e结尾为’ends with e’ 等若干条件。...结果如下图: 单纯用case_when,需要写成 tibble(fruit=stringr::fruit) %>% mutate( category=case_when(...函数核心依然是case_when条件为真即停止,所以效率上没有损失。 如果想改条件,在conditions里放肆增删改,改完再跑一遍allCaseWhen即可。

56420

如何使用Python中装饰器创建具有实例化时间变量函数方法

1、问题背景在Python中,我们可以使用装饰器来修改函数或方法行为,但当装饰器需要使用一个在实例化时创建对象时,事情就会变得复杂。...例如,我们想要创建一个装饰器,可以创建一个函数/方法来使用对象obj。如果被装饰对象是一个函数,那么obj必须在函数创建时被实例化。...如果被装饰对象是一个方法,那么必须为类每个实例实例化一个obj,并将其绑定到该实例。2、解决方案我们可以使用以下方法来解决这个问题:使用inspect模块来获取被装饰对象签名。...如果被装饰对象是一个方法,则将obj绑定到self。如果被装饰对象是一个函数,则实例化obj。返回一个函数/方法,该函数/方法使用obj。...f以及函数myfunc、myfunc2myfunc3上。

7010

数据处理第2节:将列转换为正确形状

转换列:基础部分 您可以使用mutate()函数创建列。 mutate选项几乎是无穷无尽:你可以对普通向量做任何事情,可以在mutate()函数内完成。...mutate任何内容都可以是列(通过赋予mutate列名),或者可以替换当前列(通过保持相同列名)。 最简单选项之一是基于其他列中计算。...在这种情况下,您有一些选择:要么预先创建一个函数(如果它更长时间有用),或者通过将它包装在funs()或波形符中来动态创建函数。...在这些情况下,我们必须在给出round()指令之前添加列需要为数字条件,这可以使用mutate_if来完成。 通过使用mutate_if(),我们在管道中需要两个参数: 首先,它需要有关列信息。...(多个级别) ifelse()可以嵌套,但如果你想要两个以上级别,但是使用case_when()可能更容易,它允许你喜欢语句数量多,并且比许多嵌套ifelse更容易阅读声明。

8K30

R优雅绘制小样本间相关性网络图

>4 observations 报错信息表明rcorr函数在尝试计算Spearman相关性时遇到了问题,原因是数据中某些变量(列)观测值数量不足以进行相关性分析。...具体来说rcorr 函数要求每个变量至少有5个观测值来计算相关性。...解决方案 ❝由于在进行实验设计时,通常多为设置3重复,若我们想分析每一组内不同样本之间相关性就会频繁遇到这种问题,使用内置R包则无法解决问题,因为需要我们进行自定义分析函数来进行相关性分析. ❞ 加载...= to) # 过滤掉权重为0自环 创建图形 df_igraph <- graph_from_data_frame(edge_list, directed = FALSE) 提取边权重 df.weight...<- E(df_igraph)$weight edge_attributes % mutate( color = case_when

31910

R语言ggplot2:单元格为方块热图简单小例子-2

昨天公众号后台有人留言作图,示例图如下 image.png 我选择使用R语言ggplot2来实现,这个是箱线图热图拼接,右侧热图可以借助geom_point()函数实现,将点形状改为正方块,数值按照正负来映射颜色...继续昨天推文内容 R语言ggplot2绘图单元格为方块热图—1—调整图例位置(点击蓝色字体直达昨天推文) 今天推文记录一下如何实现这个热图 首先构造一份数据集 set.seed("20200407...head(df) df1<-reshape2::melt(df,id.vars="Sample") head(df1) image.png 构造数据 library(dplyr) df1%>% mutate...(group_1 = case_when( value <= 0 ~ "A", TRUE ~ "B" ))%>% mutate(group_2=case_when( value...(value_1=case_when( value >= -1 & value < -0.7 ~ -0.8, value >= -0.7 & value < -0.5 ~ -0.6,

2.6K20

生信技能树- R语言-day7

duplicated(mm)] 提取没有重复第一次出现mutate,数据框新增一列mutate(test, new = Sepal.Length * Sepal.Width) new是产生列名加之后...多次赋值,会产生多个中间变量x1 = select(iris,-5)x2 = as.matrix(x1)x3 = head(x2,50)pheatmap::pheatmap(x3)2....select(iris,-5)),50))管道符号传递,简洁明了iris %>%select(-5) %>%as.matrix() %>%head(50) %>%pheatmap::pheatmap()玩转条件循环条件...else2, ifelse(,,ifelse)在ifelse里加一个ifelse补充 case_when练习题1.加载deg.Rdata,根据a、b两列值,按照以下条件生成向量x:load("deg.Rdata...() # 列出工作目录下文件dir(pattern = ".R$") #列出工作目录下以.R结尾文件file.create("douhua.txt") #用代码创建文件file.exists("douhua.txt

7200

R语言第二章数据处理⑤数据框列转化计算目录正文

正文 本篇描述了如何计算R数据框并将其添加到数据框中。一般使用dplyr R包中以下R函数Mutate():计算变量并将其添加到数据表中。 它保留了现有的变量。...同时还有mutate()transmutate()三个变体来一次修改多个列: Mutate_all()/ transmutate_all():将函数应用于数据框中每个列。...Mutate_at()/ transmutate_at():将函数应用于使用字符向量选择特定列 Mutate_if()/ transmutate_if():将函数应用于使用返回TRUE谓词函数选择列...mutate通过保留现有变量来添加变量通过保留现有列来添加列(sepal_by_petal): library(tidyverse) my_data <- as_tibble(iris) my_data...my_data %>% mutate(sepal_by_petal_l = Sepal.Length/Petal.Length) transmute:通过删除现有变量创建变量,删除现有列,添加

4.1K20

R语言利用转录组基因表达矩阵做基因共表达分析学习资料推荐

参考资料链接 https://github.com/cxli233/SimpleTidy_GeneCoEx/tree/v1.0.1 提供完整示例数据代码,非常好学习材料 做基因共表达比较常用是...WGCNA那个R包,这个链接里提供代码不是用WGCNA这个R包实现,而是利用表达量数据计算不同基因之间相关性,这种方法也挺常用在论文里见过 表达量数据是来源于论文 High-resolution...(stage = case_when( str_detect(dev_stage, "MG|Br|Pk") ~ str_sub(dev_stage, start = 1, end = 2),...) PCA_by_stage library(patchwork) PCA_by_method+PCA_by_tissue+PCA_by_tissue image.png 以上用到代码示例数据都可以在推文开头提到链接里找到...上面的代码有一步是对TPM值 加1然后取log10,他实现方式是先将宽格式数据转换为长格式,然后把取log10后长格式再转换为宽格式,这里我没能还可以借助mutate_at()函数 Exp_table

36710

使用 R 语言从 PDF 文档中提取表格

由于一个知识星球小伙伴急需学习如何从 PDF 文档中提取表格,所以先插这个课,「使用 R 语言处理 netCDF 数据」系列课程下次再发哈。...本课程介绍了如何使用 R 语言从 WHO(世界卫生组织)官网上下载冠疫情每日报告以及如何从这些报告中表格里面提取数据。...从 PDF 里面提取表格数据 我选择最新一个 PDF 做演示:20200523-covid-19-sitrep-124.pdf,下面使用 tabulizer 包进行数据提取,不过这个包依赖于 rJava...包,因此在使用这个包之前你需要在电脑上安装 Java 和在 R 里面安装 rJava 包。...因为电脑系统关系,我不好演示,大家可以自己研究下,不难。我这里提供几个 tips,Java 安装之后可能还需要进行环境变量配置。

3.5K10

大更新,pandas终于有case_when方法了!

一、环境 首先,pandas2.2.0版本有个安装前提条件,就是python版本需要在3.9及以上才行,因此如果使用anaconda朋友,可以通过conda install python=3.12.1...这里输入series是score_all,判断条件是english。 替换值:替换值使用了lambda隐函数对输入series计算。...这就是case_when非常灵活原因,判断条件替换值既可以是固定值,也可以是自定义函数,根据自己需求随意设置。...案例3 case_when只实现区域内变量加工,其输出结果也可以与其他函数方法结合,产生更多强大功能。...比如,可以将以上全部变量加工过程通过链式方式更优雅实现,结合assign使用一行代码可完成全部。

19710
领券