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

dplyr:使用矩阵中的值子集通过case_when创建新列

dplyr是一个在R语言中用于数据处理和操作的包,它提供了一组简洁而强大的函数,可以帮助用户对数据进行筛选、排序、汇总、变形等操作。在dplyr中,可以使用矩阵中的值子集通过case_when函数创建新列。

case_when函数是dplyr包中的一个条件语句函数,它可以根据一系列条件对数据进行分类和转换。通过使用case_when函数,我们可以根据矩阵中的值子集来创建新的列,根据不同的条件将数据进行分类或者进行特定的数值转换。

使用case_when函数的一般语法如下:

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

在上述语法中,condition1、condition2等表示条件,value1、value2等表示对应条件的值,TRUE表示默认条件,default_value表示默认值。根据条件的顺序,case_when函数会逐个判断条件,如果满足某个条件,则返回对应的值,如果不满足任何条件,则返回默认值。

下面是一个示例,展示如何使用矩阵中的值子集通过case_when函数创建新列:

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

# 创建一个示例矩阵
matrix_data <- matrix(c(1, 2, 3, 4, 5), nrow = 5, ncol = 1)

# 将矩阵转换为数据框
data <- as.data.frame(matrix_data)

# 使用case_when函数创建新列
data <- data %>%
  mutate(new_column = case_when(
    matrix_data > 3 ~ "大于3",
    matrix_data <= 3 ~ "小于等于3",
    TRUE ~ "其他"
  ))

在上述示例中,我们首先创建了一个示例矩阵matrix_data,然后将其转换为数据框data。接下来,使用mutate函数和case_when函数创建了一个名为new_column的新列。根据矩阵中的值子集,如果值大于3,则新列的值为"大于3";如果值小于等于3,则新列的值为"小于等于3";如果不满足任何条件,则新列的值为"其他"。

通过这种方式,我们可以根据矩阵中的值子集,灵活地创建新的列,以满足不同的数据处理需求。

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

  • 腾讯云官网:https://cloud.tencent.com/
  • 云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 云数据库 MySQL 版:https://cloud.tencent.com/product/cdb_mysql
  • 人工智能平台(AI Lab):https://cloud.tencent.com/product/ailab
  • 物联网开发平台(IoT Explorer):https://cloud.tencent.com/product/explorer
  • 移动开发平台(移动推送):https://cloud.tencent.com/product/umeng_push
  • 对象存储(COS):https://cloud.tencent.com/product/cos
  • 区块链服务(BCS):https://cloud.tencent.com/product/bcs
  • 腾讯云元宇宙:https://cloud.tencent.com/solution/virtual-world
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

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

str_detect(x,"h")##是否含有关键词h,生成与X长度相等逻辑向量,可用于向量取子集; str_detect(x,"h|s")##是否含有关键词h或者s,生成与X长度相等逻辑向量...,可用于向量取子集; str_starts(x,"h")##是否以h开头,生成与X长度相等逻辑向量,可用于向量取子集; str_ends(x,"h")##是否以h结束,生成与X长度相等逻辑向量,...可用于向量取子集; str_replace(x,"o","a")#将xo替换为a,只替换出现第一个o; str_replace(x,"o|s","a")#将xo或者s替换为a,只替换出现第一个...##将x全部空格删除; 图片 library(stringr) str_split(x," ")##按照空格分隔 str_split(x," ",simplify=T)##列表简化为矩阵 玩转数据框...#x是数据框或者矩阵 #margin为行则是1,margin为是2; #fun为函数 #apply(test,2,mean) #对test每一求平均值 sort(x) #对x从小到大排序 head

34871
  • 如何使用Excel将某几列有标题显示到

    如果我们有好几列有内容,而我们希望在中将有内容标题显示出来,那么我们怎么做呢? Excel - TEXTJOIN function 1....- - - - 4 - - - 在开始,我们曾经使用INDEX + MATCH方式,但是没有成功,一直是N/A https://superuser.com/questions/1300246/if-cell-contains-value-then-column-header...所以我们后来改为TEXTJOIN函数,他可以显示,也可以显示标题,还可以多个列有时候同时显示。...- - 4 - - - 15 Year 5 - - - - 5 - - - =TEXTJOIN(", ",TRUE,IF(ISNUMBER(B2:I2),$B$1:$I$1,"")) 如果是想要显示,...则: =TEXTJOIN(", ",TRUE,IF(ISNUMBER(B2:I2),B2:I2,"")) 其中,ISNUMBER(B2:I2)是判断是不是数字,可以根据情况改成是不是空白ISBLANK

    11.3K40

    生信技能树- R语言-day7

    TURE,生成长度相等逻辑向量,可以用来取子集,可以提出来含有h地雷str_starts(x2,"T") #是否以t开头str_ends(x2,"e")#是否e结束5.字符串替换x2str_replace...duplicated(mm)] 提取没有重复第一次出现mutate,数据框新增一mutate(test, new = Sepal.Length * Sepal.Width) new是产生列名加之后...else2, ifelse(,,ifelse)在ifelse里加一个ifelse补充 case_when练习题1.加载deg.Rdata,根据a、b两,按照以下条件生成向量x:load("deg.Rdata...这是一个矩阵2. 先转置3. 把行名变成一4. “宽”变成“长”把格式变成类似于 ggplot2形式,一作为x,一作为y5....#是b下标,可以给b取子集,也可以给与b对应其他向量取子集

    9700

    R语言︱数据集分组、筛选(plit – apply – combine模式、dplyr、data.table)

    包 #dplyr基本函数 filter——数据筛选(筛选观测,行) filter(Hdma_dat,pclass == 1) ###################################...## #dplyr基本函数 select——子集选取(筛选变量,) select(Hdma_dat,pclass,survived) ##选择pclass变量 ?...可以看到,计算结果第一实际上是“SELLERID.CLIENT”,我们需要把它拆分成两并调换顺序才行。...(iris$setosa)] #按照照setosa大小,重排Sepal.Length数据 四、dplyr与data.table data.table可是比dplyr以及python...data.table包提供了一个非常简洁通用格式:DT[i,j,by],可以理解为:对于数据集DT,选取子集行i,通过by分组计算j。

    20.8K32

    从零开始异世界生信学习 R语言部分 06 R应用专题

    ,生成与向量元素相等逻辑向量,可以用来取子集 str_starts(x2,"T") ##检测是否以T开头 str_ends(x2,"e") ##检测是否以e结尾 图片 5. str_replace...list,使用下标循环,可以将每次循环结果都保存到列表 ## cbind 按拼接 a = rnorm(10) b = 1:10 cbind(a,b) ##do.call() 函数是对列表 list..."), ##选择那几列列名合成在一起组成 names_to = "gene", ##名字 values_to = "count...") ## 把原来数值一一对应形成一个数值'count' 图片 library(ggplot2) p = ggplot(pdat,aes(gene,count))+ geom_boxplot...),右表多余数据舍去,没有的数据显示缺失 right_join(test1,test2,by="name") ##右连接,以右侧行为准构成数据框(第二个写数据框),左表多余数据舍去

    2.5K30

    生信入门马拉松之R语言基础-脚本项目管理、条件循环、表达矩阵和一丢丢数据挖掘(Day 7)

    undefined表格文件需要赋值,读取参数不同导致读取结果不同,不能在后续代码同等处理。Rdata可以保存多个变量,下次使用只需要一次load可以到多个数据。...代码2实现结果和代码1相同2.6 练习library(dplyr)x = c(-1,-1,4,5,2,0)case_when(x>0 ~ "A", x==0 ~ "0",...表达矩阵需要变化3.2.1 初始表达矩阵:3.2.2 转置(行变变行)3.2.3 把原来行名变成第一3.2.4 变形(宽变长)一定要先单独学会某个包/函数,才能应用它吗?不一定!...表达矩阵:一行是一个基因在所有样品里表达,一是一个样本里所有基因表达。在表达矩阵,寻找在不同组有表达差异基因。...7.5.3 箱线图应用单个基因在两组之间表达量差异可视化。分组信息:是一个有重复离散型向量,分组向量元素和表达矩阵是一一对应

    17500

    2023.4生信马拉松day7-R语言综合应用

    -(2)列表使用不方便——simplify = T简化结果,简化成矩阵 -(3)注意:之前提到过,矩阵某一不能单独转换数据类型,需要把矩阵转换成数据框再转换某数据类型;或者把这单独提取出来再转换其数据类型...; -(2)判断之后得到一个与x2相等逻辑向量; -(3)可以用来做“根据逻辑提取x子集”; str_detect(x2,"h") #判断x每个字符串含不含有某个字母或者多个字母组合; str_starts...:不符合大于零条件,就再进行一步判断; 练习7-2 # 1.加载deg.Rdata,根据a、b两,按照以下条件生成向量x: #a< -1 且b<0.05,则x对应为down; #a>1 且b...转换数据:把表格转换成两数据 -(1) 第一步:转置 -(2) 第二步:把行名作为一添加到数据(因为ggplot2容易把行名丢掉,所以倾向于把行名作为一) -(3) 第三步:新增一“group...gene", #列名叫gene values_to = "count") #由原来转换得到那一列名叫count 图片 2.

    3.6K80

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

    转换:基础部分 您可以使用mutate()函数创建。 mutate选项几乎是无穷无尽:你可以对普通向量做任何事情,可以在mutate()函数内完成。...mutate任何内容都可以是通过赋予mutate列名),或者可以替换当前列(通过保持相同列名)。 最简单选项之一是基于其他计算。...通过使用mutate_at(),我们在管道需要两个参数: 首先,它需要有关信息。...如果我想在几分钟内完成,我可以使用mutate_at()并将包含所有'sleep'包装在vars()。 其次,我在飞行创建一个函数,将每个乘以60。...如果要添加另一个数据框信息,可以使用dplyr连接函数。

    8.1K30

    RNA-seq 保姆教程:差异表达分析(二)

    导入表达矩阵 开始导入文件夹 featureCounts 表。本教程将使用 DESeq2 对样本组之间进行归一化和执行统计分析。...DESeq2对象 根据计数和元数据创建 DESeq2 对象 # - countData : 基于表达矩阵 # - colData : 见上图 # - design : 比较 ddsMat <- DESeqDataSetFromMatrix...统计 获取基因数量基本统计数据 # 使用 FDR 调整 p-values 从检测获取结果 results <- results(ddsMat, pAdjustMethod = "fdr", alpha...通路富集 从差异表达基因寻找通路 通路富集分析是基于单个基因变化生成结论好方法。有时个体基因变化是难以解释。但是通过分析基因通路,我们可以收集基因反应视图。...) == FALSE) # 创建一个log2倍数变化基因矩阵 gene_matrix <- results_sig_entrez$log2FoldChange # 添加 entrezID 作为每个

    95230

    R tips:使用TCGAbiolinks包下载TCGA数据

    GDCdownload,由于TCGA下载不是特别稳定,所以可以使用files.per.chunk定为一个,几个文件打包为一个压缩文件来下载。...这个过程,GDCprepare还会将生存数据自动合并到summarizedExperiment对象colData。...表达量:一个表达量矩阵,行是基因或者相关特征,是样本或相关特征; 注释:样本相关注释,比如病人信息、生存数据等等; 行注释:基因相关注释,比如基因名称、长度、位置、ID等等。...Normalization需要控制三个不均衡因素是文库大小、基因长度及文库组成: 文库大小:比如样本A是样本B测序量两倍,那么在同等表达水平下,样本A基因Counts就是B两倍; 基因长度...生存分析时根据基因中位数将其分为High和Low,使用log-rank检验显著性,也可以使用cox回归。

    3.2K31

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

    数据框数据框创建数据框来源主要包括用代码新建(data.frame),由已有数据转换或处理得到(取子集、运算、合并等操作),读取表格文件(read.csv,read.table等)及R语言内置数据函数...merge函数可连接两个数据框,通过指定公共使具有相同元素合并*merge函数可支持更复杂连接,但通过inner_join等更为简便,后述test1 <- data.frame(name =...#取子集方法同数据框t(m) #转置行与,数据框转置后为矩阵as.data.frame(m) #将矩阵转换为数据框列表列表内有多个数据框或矩阵,可通过list函数将其组成一个列表l <- list(m1...3.筛选test,Species为a或c行test[test$Species %in% c("a","c"),]#注意本题至少有三个问题,第一是a,c为字符型,要加"",第二是向量是c()不是...="y.Rdata")class(y)# $不支持矩阵,因此不能在这里使用class(y[,1])mean(as.numeric(y[,1]))#矩阵只允许一种数据类型,单独更改一数据类型没有意义,

    7.8K00

    R语言数据集合并、数据增减、不等长合并

    merge 按照指定合并矩阵或者数据框 一、数据合并 1、merge()函数 最常用merge()函数,但是这个函数使用时候这两种情况需要注意: 1、merge(a,b),纯粹地把两个数据集合在一起...2、dplyrdplyr数据合并, 一般用left_join(x,y,by="name") 以x为主,y匹配到都放进来, 但,y没有的则不放过来。...(RODBC、sqldf包) 二、数据增减 x=x[,-1] #这个就代表,删除了x数据集中第一数据 或用dplyrmutate函数 a=mutate(Hdma_dat,dou=2*survived...,dou4=4*survived) Hdma_dat$dou=a$dou Hdma_dat$dou4=a$dou4 #两个序列,加入到Hdma数据集汇总 筛选变量服从某子集 subset(airquality...rowSums函数对行求和,使用colSums函数对求和。

    13.3K12

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

    在Rstudio中加载tidyverse包,可以看到该包下有8个子包,著名ggplot2包即是其中一个子集,我们先着重讲一下数据处理有关包——dplyr包。...dplyr包下主要是以下几个操作: select()——选择 filter/slice()——筛选行 arrange()——对行进行排序 mutate()——修改/创建 summarize(...1 mutate() mutate()与基础函数transform()相似,都可以添加,但是允许引用刚刚创建: mydata <- tibble(x1=c(2,2,6,4),...,如果后续要使用到,需要保存下来 5 arrange() R base包涉及到排序包括 sort(),rank(),order(),而在dplyr与排序相关是arrange()包,默认是从高到低进行排序...,我们如果对个人或者科目感兴趣的话,可以使用group_by(name或者type),然后利用summarize函数就可以求出分类之后各个统计

    2K10

    生信学习-Day6-学习R包

    逗号之后空位表示选择这些行所有(即所有的特征和标签)。 test <-: 这是赋值操作,它会将选择子集保存到一个变量 test 。...综上所述,这行代码作用是创建一个数据框 test,它包含了 iris 数据集中第1、2、51、52、101、102行. 4 五个基础函数 1.新增列:mutate() 2.选择(按筛选) 号...在dplyrfilter()函数中使用时,它可以用于筛选数据框匹配给定集合任一行。这行代码作用如下: filter(test, ...): 在test数据框筛选行。...执行这个操作后,你将得到一个数据框,其中只包含test数据框Species为"setosa"或"versicolor"行。...group_by(Species):这一步将数据按照Species不同进行分组,即将数据集分成多个子集,每个子集包含相同Species数据。

    20110

    R 数据整理(七:使用tidyr和dplyr处理数据框 2.0)

    ,后续参数是条件,这些条件是需要同时满足,另外,条件取 缺失观测自动放弃,这一点与直接在数据框行下标中用逻辑下标有所不同,逻辑下标中有缺失会在结果 产生缺失。...dplyr distinct() 函数可以对数据框指定若干变 量,然后筛选出所有不同,每组不同仅保留一行。...2.10 表格拆分与合并 将同一内容分为两内容。或将两内容合并为同一内容。 首先还是可以创建一个数据框。...对于待分离对象(col),不必加上引号;但对于即将创建(into),需要使用引号,由于是两,这里使用向量创建。sep参数设定读取表格信息时以何符号作为分隔符。...对于即将合并,需要使用引号;但对于想要合并多个列名,可以不用使用引号。sep 参数设定多合并后不同数据分隔使用分割符。

    10.8K30
    领券