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

使用case_when()和filter()根据R中一列中的值和另一列中的级别来设置数据框子集

使用case_when()和filter()函数可以根据R中一列的值和另一列的级别来设置数据框的子集。

case_when()函数是dplyr包中的一个强大的条件语句函数,可以根据多个条件对数据进行分类和转换。它的语法如下:

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

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

filter()函数也是dplyr包中的一个常用函数,用于根据指定的条件筛选数据框的行。它的语法如下:

代码语言:txt
复制
filter(data, condition)

其中,data是要筛选的数据框,condition是筛选条件,可以是一个或多个逻辑条件。

根据这个问答内容,我们可以使用case_when()和filter()函数来设置数据框的子集。假设我们有一个数据框df,其中包含两列:column1和column2。我们想要根据column1的值和column2的级别来筛选出符合条件的子集。

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

subset_df <- df %>%
  mutate(subset = case_when(
    column1 > 10 & column2 == "A" ~ "Subset 1",
    column1 <= 10 & column2 == "B" ~ "Subset 2",
    TRUE ~ "Other"
  )) %>%
  filter(subset != "Other")

上述代码中,我们使用case_when()函数根据column1的值和column2的级别创建了一个新的列subset,根据条件设置了不同的子集标签。然后,我们使用filter()函数筛选出subset不为"Other"的行,即得到了符合条件的子集。

这里没有提及具体的腾讯云产品和产品介绍链接地址,因为该问题与云计算领域的专业知识和腾讯云产品无关。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

R语言基础5(绘图基础)

,可用于向量取子集; str_starts(x,"h")##是否以h开头,生成与X长度相等逻辑向量,可用于向量取子集; str_ends(x,"h")##是否以h结束,生成与X长度相等逻辑向量,...##将x全部空格删除; 图片 library(stringr) str_split(x," ")##按照空格分隔 str_split(x," ",simplify=T)##列表简化为矩阵 玩转数据...# arrange,数据按照某一排序 sort()##只排序某一,其他不改变;无法改变对应关系。...#x是数据或者矩阵 #margin为行则是1,margin为是2; #fun为函数 #apply(test,2,mean) #对test每一求平均值 sort(x) #对x从小到大排序 head...#对列表向量每个元素实施相同操作 lappy(1:4,rnorm) 两个数据连接 #inner_join:取交集 #full_join:全连接 #left_join:左连接 #right_join

34871
  • 生信技能树- R语言-day7

    (x," ")str_remove_all(x," ")玩转数据arrange,数据按照某一排序sort是给向量排序library(dplyr)arrange(test, Sepal.Length...) #默认根据这一从小到大给整个数据排序arrange(test, desc(Sepal.Length)) #从大到小distinct,数据按照某一去重复unique 给向量去掉重复duplicated...,如果没有赋值,那么这个数据还是没有新加,没有赋值,就没有产生补充select()filter()如何简化连续步骤1....else2, ifelse(,,ifelse)在ifelse里加一个ifelse补充 case_when练习题1.加载deg.Rdata,根据a、b两,按照以下条件生成向量x:load("deg.Rdata...对列表/向量每个元素实施相同操作lapply(1:4,rnorm)两个数据链接merge可以合并inner_join:交集都存在取inner_join(test1,test2,by="name

    9700

    生信学习-Day6-学习R

    在dplyr包filter()函数中使用时,它可以用于筛选数据匹配给定集合任一行。这行代码作用如下: filter(test, ...): 在test数据筛选行。...group_by(Species):这一步将数据按照Species不同进行分组,即将数据集分成多个子集,每个子集包含相同Species数据。...这意味着函数将查找 test1 test2 列名为 "x" ,并基于这两匹配来合并行。只有当两个数据中都存在 "x" 且某些行在这一相等时,这些行才会出现在最终结果。...y = test2:表示要与test2数据进行semi-join操作,即保留test1与test2匹配行。 by = 'x':指定要根据哪个进行匹配。在这里,使用x来进行匹配。...y = test1:表示要与test1数据进行anti-join操作,即从test2删除与test1匹配行。 by = 'x':指定要根据哪个进行匹配。在这里,使用x来进行匹配。

    20310

    详谈如何使用ggplot2绘制火山图

    欢迎关注R语言数据分析指南 ❝最近VIP群内有朋友询问火山图绘制方法,那么本节就来详细介绍在R如何使用「ggplot2绘制火山图」,小编添加了详细注释希望各位观众老爷能够喜欢。...) %>% # 仅保留指定 mutate( gene_type = case_when( fold_change >= 2 & adj_p_val <= 0.05 ~...数据各个 gene_type 出现频数 筛选需要展示基因 sig_genes % filter(symbol %in% c("Il15", "Il34", "Slc22a3...(aes(color = gene_type), alpha = 0.6, shape = 16, size = 1) + # 从 up_genes 数据绘制特定形状散点图,填充颜色为红色,边框颜色为黑色...0.5 到 2 geom_vline(xintercept = c(log2(0.5),log2(2)), linetype = "dashed") + # 在图中显示 sig_genes 数据基因符号标签

    73730

    左手用R右手Python系列5——数据切片与索引

    R语言: 数据索引: 基于数据本身提取 subset函数 filter+select函数 Python: 数据自身方法 ix方法 loc方法 iloc方法 query方法 -----------...还有一种更加高级优雅得方式是使用dplyr包selectfilter函数进行行列索引与切片。...-------------- Python: -------------- 为了保持与R语言案例数据演示一致,我把刚才在R语言中使用数据复制一份导入Python。...好吧,讲了这么多,终于可以开始总结一下R语言与Python切片索引规则重要区别了: R语言中生成数据使用圆括号,Python根据不同数据类型分别定义(列表用方括号、元组用圆括号、字典几何用花括号...) R语言和Python索引都用方括号,且都是使用逗号进行行规则规则位置间隔 R语言与Python在索引多行多时传入数据类型不同,R语言传入向量,Python传入列表。

    3K50

    Day5:R语言课程(数据、矩阵、列表取子集

    学习目标 演示如何从现有的数据结构子集,合并及创建新数据集。 导出数据图以供在R环境以外使用。...1.数据 数据矩阵)有2个维度(行),要想从中提取部分特定数据,就需要指定“坐标”。向量一样,使用方括号,但是需要两个索引。在方括号内,首先是行号,然后是号(二者用逗号分隔)。...,我们可以使用数据集中特定逻辑向量来仅选择数据集中行,其中TRUE与逻辑向量位置或索引相同。...---- 注意:有更简单方法可以使用逻辑表达式对数据帧进行子集化,包括filter()subset()函数。这些函数将返回逻辑表达式为TRUE数据行,允许我们在一个步骤数据进行子集化。...为避免这种情况,可以在导出文件时设置参数col.names = NA,以确保所有列名称都与正确对齐。 将向量写入文件需要与数据函数不同。

    17.7K30

    生信代码:数据处理( tidyverse包)

    在Rstudio中加载tidyverse包,可以看到该包下有8个子包,著名ggplot2包即是其中一个子集,我们先着重讲一下数据处理有关包——dplyr包。...start_with("n")) 3 filter() filter()是对数据行方向选择筛选,选出符合我们条件某些行: df %>% filter( type== "english", score...=sd(score) ) ##summarize返回是一个新数据,如果后续要使用到,需要保存下来 5 arrange() R base包涉及到排序包括 sort(),rank...(),order(),而在dplyr包与排序相关是arrange()包,默认是从高到低进行排序,如果变换排序顺序则可以使用-(变量)或者desc(变量)。...,例如对于我们本文中数据,我们如果对个人或者科目感兴趣的话,可以使用group_by(name或者type),然后利用summarize函数就可以求出分类之后各个统计

    2K10

    R3数据结构和文件读取

    [行,]继承行名列名,筛选test,Species为a或c行,test[test$Species %in% c("a","c"),]## gene CHANGE score## r2...改行名列名rownames(df1) <- c("r1","r2","r3","r4")#只修改某一行/名colnames(df1)[2] <- "CHANGE"#6.两个数据连接,mergetest1...左连接可以使用merge(x, y, by="common_column", all.x = TRUE)实现,其中xy是要连接两个数据集,by指定用于连接列名,all.x设置为TRUE表示保留左侧数据所有行...#注释3如何按照数据某一,给整个数据排序order,使用order()函数按照数据某一对整个数据进行排序。...#注释4如何按照数据某一,给整个数据去重复,可以使用unique()函数按照数据某一对整个数据进行去重操作。

    2.8K00

    生信学习小组Day5笔记—Chocolate Ice

    提取子集重要符号:[](1)根据元素位置x<-c(1:10) #x是一个由数字1到10组成向量x[4] #x第4个元素x[-4]#排除法,除了第4个元素之外剩余元素x[2:4]#第2到4个元素x[...-(2:4)]#除了第2-4个元素x[c(1,5)] #第1个第5个元素(2)根据x[x==10]#等于10元素x[x<0]x[x %in% c(1,2,5)]#存在于向量c(1,2,5)元素数据概念解释...:数据:相当于excel表格,由行组成。...X是一个数据colnames(X) #查看列名rownames(X) #查看行名,默认行名就是行号,1.2.3.4...colnames(X)[1]<-"name"#有的公司返回数据,左上角第一格为空...时加载命令从数据中提取元素- X[x,y]#第x行第y- X[x,]#第x行- X[,y]#第y- X[y] #也是第y- X[a:b]#第a列到第b- X[c(a,b)]#第a第b-

    99900

    生信技能树R语言学习直播配套笔记

    、矩阵列表 1.区别 (1)Vector向量——一维;matrix矩阵——二维,只允许一种数据类型;data.frame数据——二维,每只允许一种数据类型 2.练习题 (1)#求c1第一数值中位数...#筛选c1,最后一为a或c行 c1 <- read.csv("....[ ] :向量,数据,矩阵取子集 [[ ]]:列表取子集 四、读取,写入数据 txt csv read.csv():一般读取csv格式 read.table():一般读取txt格式 ex1 <-...语法 ggplot2特殊语法:列名不带引号 属性设置 映射:根据数据某一内容分配颜色 手动设置:把图形设置为一个或N个颜色,与数据类型无关 实战 #1.入门绘图模板:作图数据,横纵坐标 ggplot...,再按照Sepal.Length排序 dplyr包mutate、select、filter、rename mutate():新增列,rename():重命名列名 select():筛选filter

    1.1K21

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

    好消息是,最近pandas2.2.0稳定版本发布了,其中一个新功能就是增加了case_when方法,可以说这个一直被大家诟病方法终于补齐了!...功能:如果判断条件为真(True)则替换数据,反之保持原值不变。有点类似于升级版where/mask。 参数:只有一个参数caselist,是一个元组构成列表,元组内包含判断条件想要替换。...同样,可调用对象不得更改输入series数据。 对于conditionreplacement要求可以看出,case_when用法非常灵活。...df['score_all'] = df.sum(axis=1) 对加工总成绩使用case_when方法,生成1-5排序等级。...这就是case_when非常灵活原因,判断条件替换既可以是固定,也可以是自定义函数,根据自己需求随意设置

    34410

    R语言 数据、矩阵、列表创建、修改、导出

    数据数据创建数据来源主要包括用代码新建(data.frame),由已有数据转换或处理得到(取子集、运算、合并等操作),读取表格文件(read.csv,read.table等)及R语言内置数据函数...,data.frame数据允许不同不同数据类型,但同一只允许一种数据类型*数据括号内行在前df1 0] #先取出列名为gene向量,在给出一个一一对应逻辑向量数据修改修改数据相当于定位取出数据后赋值,赋值需对应元素或向量...3.筛选test,Species为a或c行test[test$Species %in% c("a","c"),]#注意本题至少有三个问题,第一是a,c为字符型,要加"",第二是向量是c()不是

    7.8K00

    R 数据整理(七:使用tidyrdplyr处理数据 2.0)

    %in% c("setosa","versicolor")) filter() 函数第一个参数是要选择数据,后续参数是条件,这些条件是需要同时满足,另外,条件取 缺失观测自动放弃,这一点与直接在数据行下标中用逻辑下标有所不同...filter() 会自动舍弃行名,如果需要行名只能将其转换成数据。...R 数据整理(六:根据分类新增列种种方法 1.0) 其他函数 slice dplyr 包函数 slice(.data, ...) 可以用来选择指定序号子集,正序号表示保留,负序号表示排除。...nest 与unnest 对于数据,我们可以使用split 将数据按某拆分为多个数据,并储存在列表。...nest unnest 函数,可以将子数据保存在 tibble ,可以将保存在 tibble 数据合并为一个大数据

    10.9K30

    生信课程note-3

    #重点:数据#1.数据来源# (1)用代码新建# (2)由已有数据转换或处理得到# (3)读取表格文件 (对数据操作)# (4)R语言内置数据 (可以直接使用数据)heatmap(volcano...用于取子集逻辑向量:与x对应,不必须由x生成。(例子即通过score为gene取子集)记住,==是等于意思,>-是赋值意思## 代码思维#如何取数据最后一?...df1[,3]df1[,ncol(df1)]#如何取数据除了最后一以外其他?df1[,-ncol(df1)] 注:!-给数值用,!给逻辑用。...c("r1","r2","r3","r4")#只修改某一行/名colnames(df1)[2] <- "CHANGE"列名行名都是向量#6.两个数据连接test1 <- data.frame(...test <- read.csv("exercise.csv")# 2.求test第一数值中位数median(test$Petal.Length)# 3.筛选test,Species为a或c

    1.3K40

    十二、R语言综合应用

    #从大到小 2.2 distinct,数据按照某一去重复 distinct(test,Species,.keep_all = T) 2.3 mutate,数据新增一 mutate(test,new...###没有赋值,所以修改后test还是5 图片 2.4 连续步骤 select() 筛选 filter() 筛选行 2.4.1.多次赋值,产生多个变量 x1 = filter(iris,Sepal.Width...# 对列表/向量每个元素(向量)实施相同操作 test <- list(x = 36:33,y = 32:35,z = 30:27);test #返回是列表,对列表每个元素(向量)求均值(...,取右边表存在子集 anti_join(test1,test2,by="name") ###反连接,左边表里在右边表里没有的会被留下来。...(dat, logFC) ###第二种 load('test1.Rdata') library(dplyr) x=arrange(dat,logFC);head(x) # 2.将test1.Rdata存放两个数据连接在一起

    3.1K30

    我发现了pandas黄金搭档!

    它是对R著名数据清洗包janitor移植,就如同它名字那样,帮助我们完成数据处理清洁工作: 2 pyjanitor常用功能 对于使用conda朋友,推荐使用下列命令完成pyjanitor...: 2.1 利用also()方法穿插执行任意函数 熟悉pandas链式写法朋友应该知道这种写法对于处理数据理清步骤有多高效,pyjanitoralso()方法允许我们在链式过程随意插入执行任意函数...()方法实现多条件分支 pyjanitorcase_when()方法可以帮助我们针对数据实现类似SQL多条件分支运算,注意,因为是多条件分支,所以包含最后“其他”条件在内,需要至少定义3条分支规则...conditional_join()在作为方法使用时,其第一个参数应传入连接「右表」数据,紧接着是若干个格式为(左表字段, 右表字段, 判断条件)这样三元组来定义单条或多条条件判断「且」组合...move()方法用于快捷调整某行或某数据位置,通过source参数指定需要移动数据行index或字段名,target参数用于指定移动目标位置数据行index或字段名,position用于设置移动方式

    50920

    玩转数据处理120题|R语言版本

    = max(rownames(df))) 18 数据修改 题目:添加一行数据['Perl',6.6] 难度:⭐⭐ R解法 row <- c(6.6,'Perl') # 需要和位置对应 # 或者建数据...题目:将createTime设置为索引 难度:⭐⭐ R解法 df %>% tibble::column_to_rownames('createTime') 42 数据创建 题目:生成一个df...缺失处理 题目:检查数据是否含有任何缺失 难度:⭐⭐⭐ R解法 # 这个包结果呈现非常有趣 library(mice) md.pattern(df) 46 数据转换 题目:将salary类型转换为浮点数...))) %>% arrange(desc(freq)) %>% filter(row_number() <= 3) 91 数据提取 题目:提取第一可以整除5数字位置 难度:⭐⭐⭐ R语言解法...数据读取 题目:从CSV文件读取指定数据 难度:⭐⭐ 备注 从数据1前10行读取positionName, salary两 R语言解法 #一步读取文件指定用readr包或者原生函数都没办法

    8.8K10

    【生信技能树培训笔记】R语言基础(20230112更新)

    数据要求每一只能有一种数据类型,且数据只是R语言内部一个数据,不是一个文件。- 数据单独拿出来是一个向量,视为一个整体。一个向量可以出自数据,也可以用代码生成。...详见帮助文档(二)矩阵(matrix)矩阵是二维。只允许一种数据类型。Tips: 判断数据结构根据生成他函数来判断用函数class或is族函数来判断I.新建矩阵子集矩阵取子集,不支持$符号。...重点与Tips:数据按照逻辑子集,TRUE对应行/留下,FALSE对应行/丢掉。用于取子集逻辑向量,与原集对应即可,不必一定由原集生成。...默认all=FALSE,表示只取共同或行相同内容进行合并,当指定all=TRUE时,取两个数据中指定行列并集进行合并,任一表缺失,则用NA填充。...(即指定数据数全部取,另一数据数据取与之交集。)

    4K51
    领券