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

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即可。

61620
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    「R」dplyr 编程

    来源:vignettes/programming.Rmd[2] 大多数 dplyr 函数使用非标准计算(NSE)。这是一个术语——意味着它们不遵循通常的计算规则。...相反,它们捕获你键入的表达式并以自定义的方式对其进行计算。这让 dplyr 代码有两个主要优点: 数据框的操作可以简洁地表达,因为你不需要重复输入数据框名称。...动词计算的参数来创建函数(这一点很重要,如果你使用 dplyr 进行数据框操作,会发现很好用,但是如果你用它创建函数,你会发现它总是以一种无法被理解的形式报错)。...这篇文章有两个目标: 演示如何使用dplyr的pronouns和quasiquotation编写可靠的函数,以减少数据分析代码中的重复。...教你基本理论,包括quosures——一个存储表达式和环境的数据结构,以及tidyeval——底层工具包。

    1.3K20

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

    转换列:基础部分 您可以使用mutate()函数创建新列。 mutate中的选项几乎是无穷无尽的:你可以对普通向量做任何事情,可以在mutate()函数内完成。...Mutate全部列 mutate_all()版本是最容易理解的,在清理数据时非常漂亮。 您只需传递要在所有列中应用的操作(以函数的形式)。...如果我想在几分钟内完成,我可以使用mutate_at()并将包含列的所有'sleep'包装在vars()中。 其次,我在飞行中创建一个函数,将每个值乘以60。...不幸的是,似乎没有简单的方法让case_when()返回一个有序的因子,所以你需要自己做,之后使用forcats :: fct_relevel(),或者只是一个因子()函数。...如果要添加另一个数据框的信息,可以使用dplyr中的连接函数。

    8.1K30

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

    由于一个知识星球的小伙伴急需学习如何从 PDF 文档中提取表格,所以先插这个课,「使用 R 语言处理 netCDF 数据」系列的课程下次再发新的哈。...本课程介绍了如何使用 R 语言从 WHO(世界卫生组织)的官网上下载新冠疫情的每日报告以及如何从这些报告中的表格里面提取数据。.../ 这个非常简单,我的思路是直接获取网页中的所有 标签的 href 属性,然后过滤出链接中含 .pdf 的,最后再用一个循环下载所有的 PDF 文件即可。...从 PDF 里面提取表格数据 我选择最新的一个 PDF 做演示:20200523-covid-19-sitrep-124.pdf,下面使用 tabulizer 包进行数据提取,不过这个包依赖于 rJava...(Reporting_Country_Territory_Area = case_when( Reporting_Country_Territory_Area == "(Commonwealth

    3.7K10

    如何使用 Vue.js 中的自定义指令编写一个URL清洗器

    学习制作自定义指令:构建安全的URL清理指令 开篇 Vue.js配备了一套默认指令,对于常见的使用情况非常重要。这些默认指令包括v-for、v-html和v-text。...此外,Vue.js还赋予我们注册定制指令以满足特定需求的能力。 自定义指令通常包括生命周期钩子,并且可以在“mounted”、“updated”和“beforeUnmount”等阶段进行操作。...1、函数内部注册 在Vue.js中,以camelCase声明并以‘v’为前缀的变量会自动被识别为指令。...我们还可以使用 directives API选项在setup函数之外注册指令。...在本示例中,我们将使用npm。 npm install -S @braintree/sanitize-url Unsafe URL 这是一个我们旨在清理的不安全URL的示例。

    30210

    100个GEO基因表达芯片或转录组数据处理GSE25097(018)

    数据信息检索可以看到GSE25097是基因表达芯片数据,因此可以使用GEOquery包下载使用GEOquery包下载数据remotes::install_github('ScienceAdvances/...可以筛选一下分组表型信息,只保留自己需要的样本,作为后续分析的样本(根据自己的研究目的筛选符合要求的样本)pdata % dplyr::mutate(...Sample = geo_accession, Group = case_when(`tissue:ch1`=='tumor liver'~'Tumor',...GPL10687_family.soft.gz", Feature = "GeneSymbol", skip = 1104)fwrite(probe2symbol,'GPL10295.csv.gz')把表达矩阵中的探针名转换为基因名...;transid是我写的一个R函数,有需要可以联系我,加入交流群fdata <- transid(probe2symbol, probe_exprs)保存数据common_samples <- base

    11710

    100个GEO基因表达芯片或转录组数据处理之GSE126848(003)

    , clusterProfiler, org.Hs.eg.db, org.Mm.eg.db)注:using是我写的函数,作用是一次性加载多个R包,不用写双引号,并且不在屏幕上打印包的加载信息,可以参考之前的推文...using的定义;函数名字using是在模仿Julia语言中的包加载函数geo_accession 的样本,在这里只保留disease:ch1中healthy和NASH的样本,作为后续分析的样本(根据自己的研究目的筛选符合要求的样本)pdata mutate( Sample = geo_accession, Group = case_when(`diagnosis:ch1` == "HC" ~ "Control"...}_pdata.csv"))处理表达谱数据原始数据为Count值,需要标准化为TPM,并且基因名是Ensembl ID转换为Symbol基因名,可以使用到我自己写的几个函数genekit、bioquest

    8200

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

    ,可用于向量取子集; str_starts(x,"h")##是否以h开头,生成与X长度相等的逻辑值向量,可用于向量取子集; str_ends(x,"h")##是否以h结束,生成与X长度相等的逻辑值向量,...可用于向量取子集; str_replace(x,"o","a")#将x中的o替换为a,只替换出现的第一个o; str_replace(x,"o|s","a")#将x中的o或者s替换为a,只替换出现的第一个...o; str_replace_all(x,"o","a")#将x中的o替换为a,替换所有的o; str_remove(x," ")##将x中的第一个空格删除; str_remove_all(x," ")...,作为他的第一个参数 #用之前需要加载stringr包或dplyr包,快捷键ctrl+shift+M 条件或循环 rm(list = ls()) ## 一.条件语句 ###1.if(){ } ##...---- dir() # 列出工作目录下的文件 dir(pattern = ".R$") #列出工作目录下以.R结尾的文件 file.create("douhua.txt") #用代码创建文件 file.exists

    35871

    tidyHeatmap | 顶刊SCI热力图绘制工具,用它就对了~~

    tidyHeatmap-快速绘制热力图,用它就对了~ 今天是2024年的第一篇原创笔记,我们以R语言相关知识点开始~~ (PS:今年的重点项目之一就是使用R语言绘制好看的商务图表!)...「tidyHeatmap」是一个基于R语言的绘制热力图工具,它能够用于快速绘制高质量的热力图,并且支持数据预处理和调整参数等功能。...tidyHeatmap使用了ggplot2中的语法,因此其使用方法与ggplot2比较相似。 tidyHeatmap可以帮助用户将复杂的数据进行可视化,以便更好地理解数据之间的关系。...另外,tidyHeatmap还支持使用其他R包中的函数进行数据预处理,例如dplyr、reshape2、tidyr等,使得数据预处理变得更加灵活和高效。...::mutate(act = activation) |> tidyr::nest(data = -sample) |> dplyr::mutate(size = rnorm(n(),

    63110

    生信星球 学习小组Day6笔记--学习R包 高小能

    认识 R 包R包是多个函数的集合,具有详细的说明和示例。学生信,R语言必学的原因是丰富的图表和Biocductor上面的各种生信分析R包。 包的使用是一通百通的,我们以dplyr为例,讲一下R包。...安装和加载R包1.镜像设置为了保证我们可以自定义CRAN和Bioconductor的下载镜像,其实是可以在Rstudio中进行设置的,只需要运行这两行代码即可:# options函数就是设置R运行过程中的一些选项设置...图片加载library(dplyr)示例数据直接使用内置数据集iris的简化版:test dplyr五个基础函数1.mutate(),新增列mutate...图片2.select(),按列筛选(1)按列号筛选图片(2)按列名筛选图片3.filter()筛选行图片4.arrange(),按某1列或某几列对整个表格进行排序图片5.summarise():汇总图片dplyr...两个实用技能管道操作 %>% (cmd/ctr + shift + M)count统计某列的unique值dplyr处理关系数据图片1.內连inner_join,取交集2.左连left_join3.全连

    16700

    生信技能树- 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...对列表/向量中的每个元素实施相同的操作lapply(1:4,rnorm)两个数据框的链接merge可以合并inner_join:交集都存在的取inner_join(test1,test2,by="name...() # 列出工作目录下的文件dir(pattern = ".R$") #列出工作目录下以.R结尾的文件file.create("douhua.txt") #用代码创建文件file.exists("douhua.txt

    10400
    领券