涉及编程的数据和代码都会放到 https://github.com/XSLiuLab/Workshop 推荐图书 《R for Data Science》[1] 《R 语言编程指南》 《R 实战》 其他推荐见...:: cume_dist dense_rank min_rank ntile percent_rank row_number 其他 dplyr:: between case_when coalesce...is.na()) 位置 mean, meadian 逻辑值 mean, sum 位置 dplyr:: first last nth 排序 quantile min max 分布 IQR mad sd var...fwrite data.table 语法 dt[i, j, by] 数据过滤与合并等操作与 R 基础语法一致,也可以使用 tidyverse 处理 整数索引 逻辑索引 命名索引 进一步的学习参考小抄、...文档和《R 语言编程指南》 后几期主题 本期未讲述的内容???
大家好,又见面了,我是你们的朋友全栈君。 近期写R代码,经常用dplyr::case_when结合stringr::str_detect进行条件判断。...痛点:判断条件可能会改或增删,全写在case_when里,代码冗余且不利于复制和维护,stackoverflow找了一圈,没发现好的解决方案,干脆自己写了一个通用代码以自动生成批量case_when判断...) 使用示例: 初始表tibble(fruit=stringr::fruit) 想实现字母a开头为’starts with a’,字母e结尾为’ends with e’ 等若干条件。...'(an)|(ch)','contains an or ch' ) 或者写在Excel里, 然后复制单元格,用conditions <- clipr::read_clip_tbl()读进R...函数的核心依然是case_when,条件为真即停止,所以效率上没有损失。 如果想改条件,在conditions里放肆增删改,改完再跑一遍allCaseWhen即可。
down gene5 1.6186835 -1.8350010 0.07323936 none gene6 3.3965326 -2.2189805 0.04056557 down 下面是用R实现的几种方式...: 目标:筛选差异基因,标注上调下调 p.value小于0.05,且logFC绝对值大于1的为DEG 先建立模拟数据 set.seed(1445) df <- data.frame(expr = runif...10的原因属个人喜好,但我觉得很有用 library(dplyr) df <- mutate(df, regulation=test_p+test_up+10*test_down, method1 =...包的case_when df$method4 <- case_when(df$regulation == 2 ~ "up", df$regulation...的case_when df$method6 <- case_when(test_p & test_up ~ "up", test_p & test_down ~ "down",
这边演示的代码较短,因此不加{}问题也不大i = -1if (i0) print('up') # 这边就不会执行1.1.1 利用if来进行长脚本管理...,用之前别忘记加载R包library(stringr)# 1.随便生成一个向量,取名样本。...,大家可以先从看懂模仿开始## [1] "0"补充:case_when()# 用之前先加载R包dplyrlibrary(dplyr)# 先来个简单的,case_when是按顺序进行判断的i = 0case_when...按顺序进行判断,条件严格的往前写哈# 这个用来看p值比较多case_when(x <= 0.0001 ~ "****", x <= 0.001 ~ "***", x...require(g,character.only = T)) # 只识别字符,这些参数大家不了解也问题不大 install.packages(g,ask = F,update = F) # 装包的时候别问问题别更新
不谋而合的是,很多我之前都介绍过了。 这就是优秀者们的马太效应吗! 1-switch和case_when 在做数据分析时,常常遇到的一个场景是,1,2,3 需要转换成其对应的"a","b","c"。...比如在对结果进行分类统计的时候。...,dplyr 提供了向量化的操作[[37-R茶话会07-高效的处理数据框的列]]: > dplyr::case_when( + tmp %in% "a" ~ 1, + tmp %in% "b"...其实我已经介绍过[[41-R茶话会08-优秀的R使用者,优秀的代码习惯]],以及包:[[22-R茶话会03-美化代码]] 这一次来看看tidyverse 官方的包:Welcome | The tidyverse...5-学会在你的R 分享内容里使用变量 以Rmd 为例子: You can do this by defining parameters in the YAML header of your R Markdown
承接R&Python Data Science 系列:数据处理(1)继续介绍剩余的函数。...2 条件函数 这里介绍3个条件函数,if_else()、case_when()、between()函数,Python包dfply和R包dplyr中都是这3个函数,在用法上有点细微差别,日常中使用最多...而且if_else()函数可以嵌套使用,不过当条件判断超过2个的时候,建议使用case_when()函数。...注意:python在jupyter中使用管道函数换行书写代码的时候需要用()把代码括起来。 2.2 case_when函数 用于多条件赋值,评分卡Woe赋值的时候使用起来很方便。...注意:case_when函数在Python和R语言中使用的时候有点区别,请留意。
全文并非是对数据整理的实操整理,主要整理在数据整理/清洗中常用的R包介绍 library(tidyr) library(dplyr) library(stringr) library(tibble) 1...x," ") #删除全部目标字符 2.玩转data.frame--dplyr包 2.1 arrange,数据框按照某一列排序,实际参数不能加" " library(dplyr) arrange(test...### library(dplyr) i = rnorm(10) case_when(i>0 ~ "+", i<0 ~ "-", T ~ "0") ★★★★★长脚本的管理方式...进行转置:使gene名变为列名,将样本名转化为data.frame中的第一列 ggplot2对行名并不友好,通常要使样本名转化为data.frame中的第一列,防止在后续代码运行过程中行名丢失 图片 图片...library(tidyr) library(tibble) library(dplyr) #加载数据整理需要的包 dat = t(exp) %>% #将matrix进行行列转置 as.data.frame
昨天公众号后台有人留言作图,示例图如下 image.png 我选择使用R语言的ggplot2来实现,这个是箱线图和热图的拼接,右侧的热图可以借助geom_point()函数实现,将点的形状改为正方块,数值按照正负来映射颜色...继续昨天推文的内容 R语言ggplot2绘图单元格为方块的热图—1—调整图例的位置(点击蓝色字体直达昨天的推文) 今天的推文记录一下如何实现这个热图 首先构造一份数据集 set.seed("20200407...library(dplyr) df1%>% mutate(group_1 = case_when( value <= 0 ~ "A", TRUE ~ "B" ))%>% mutate...(group_2=case_when( value >= -1 & value < -0.7 ~ "[-1,-0.7)", value >= -0.7 & value < -0.5 ~...scale_size_continuous(range = c(2,10))+ scale_y_discrete(position = "right")+ labs(x=NULL,y=NULL) image.png 这里遇到的问题是如何让图例想推文开头的图片一样
(x1) #转matrix x3 = head(x2,50) #只要前50行 pheatmap::pheatmap(x3) #画热图 #使用管道符%>%的代码 iris %>% select(-5...(dplyr) i = 0 ifelse(i>0,"+",ifelse(i<0,"-","0")) case_when(i>0 ~ "+", i<0 ~ "-",...…) #其中X是数据框/矩阵名; #MARGIN为1表示行,为2表示列,FUN是函数 test<- iris[1:6,1:4] apply(test, 2, mean) #对列操作,得到有names...0.2333333 apply(test, 1, sum) ### 2.lapply(list, FUN, …) # 对列表/向量中的每个元素实施相同的操作 lapply(1:4,rnorm)....如何进行长脚本的管理 1.可以用if(F){}来进行长脚本的管理,带有{}的代码,可以被折叠 2.分成多个脚本,每个脚本最后保存Rdata,下一个脚本开头清空再加载,不推荐表格文件 生信技能树,生信马拉松
由于一个知识星球的小伙伴急需学习如何从 PDF 文档中提取表格,所以先插这个课,「使用 R 语言处理 netCDF 数据」系列的课程下次再发新的哈。...本课程介绍了如何使用 R 语言从 WHO(世界卫生组织)的官网上下载新冠疫情的每日报告以及如何从这些报告中的表格里面提取数据。...从 PDF 里面提取表格数据 我选择最新的一个 PDF 做演示:20200523-covid-19-sitrep-124.pdf,下面使用 tabulizer 包进行数据提取,不过这个包依赖于 rJava...包,因此在使用这个包之前你需要在电脑上安装 Java 和在 R 里面安装 rJava 包。...因为电脑系统的关系,我不好演示,大家可以自己研究下,不难的。我这里提供几个 tips,Java 安装之后可能还需要进行环境变量的配置。
欢迎关注R语言数据分析指南 ❝本节来介绍一款R包「roughnet」其最主要用来绘制网络图时添加纹理填充,小编测试后发现挺有趣的有多了一种图形展示方式。...感兴趣的朋友欢迎分享转发,「更多详细内容请参考作者官方文档」 ❞ 官方文档 ❝https://github.com/schochastics/roughnet ❞ 加载R包 remotes::install_github...igraph) install.packages(c("signnet","graphlayouts")) library(signnet) library(graphlayouts) library(dplyr...(main, weights = 1/w) # 使用 stress 布局计算节点的坐标 # 将计算得到的 x 坐标赋值给节点属性 V(main)$x V(main)$x <- xy[, 1] # 将计算得到的..."s", "n") # 设置节点的位置属性 # 创建一个宽度为 600,高度为 600 的 roughnet 图形,使用 Herculanum 字体 roughnet(main, width = 600
dplyr包下主要是以下几个操作: select()——选择列 filter/slice()——筛选行 arrange()——对行进行排序 mutate()——修改列/创建列 summarize(...)——汇总数据 而这些函数都可以与group_by结合,分组对原数据框进行处理。...=sumx/4)##dplyr允许使用管道%>%操作,且meanx可以引用sumx 2 select() select()使我们能够快速聚焦在有用的数据子集上: df <- tibble(...包中涉及到排序的包括 sort(),rank(),order(),而在dplyr包中与排序相关的是arrange()包,默认是从高到低进行排序,如果变换排序顺序则可以使用-(变量)或者desc(变量)。...进行排序,再对score进行排序 6 group_by() group_by可以对原数据框进行分组计算,例如对于我们本文中的数据框,我们如果对个人或者科目感兴趣的话,可以使用group_by(name
构造示例数据 首先我们需要构造一个示例数据集用于接下来的演示,这里我使用的是我的微信好友数据里面的省份、城市、性别变量。...,可以直接使用我的 friends.csv 数据集: # 使用微信好友数据 library(hrbrthemes) library(tidyverse) library(ggplot2) library...使用 sankeywheel 绘制 介绍桑基图画法的教程当然首先要介绍我自己写的 R 包啦,我有一个 sankeywheel 包可以用来绘制桑基图,其实我在 探索微信好友数据 的那个教程里面已经介绍过了这个...首先我们导入 ggalluvial 包,对 df 变量进行分组计数并把返回的结果保存到 pg 数据框里面: library(ggalluvial) pg % count(prov,...使用 echarts4r 绘制 这个也蛮好用的: library(echarts4r) df_count df_count %>% e_charts(width = "100%", height =
R语言与Python的Pandas中具有非常丰富的数据聚合功能,今天就跟大家盘点一下这些函数的用法。...library(dplyr) 使用group_by函数结合summarize可以方便的完成分组聚合功能。...R语言中的分组聚合如果使用矢量函数来进行操作,会大大提升其执行效率: tapply(iris$Sepal.Length,iris$Species,mean) tapply(iris$Sepal.Length...使用pandas中的groupby方法可以很快捷的进行分组数据聚合。...':len,'sum':np.sum,'mean':np.mean}) #对输出进行自定义命名: ?
TCGA数据下载就易用性来说,RTCGA包应该更好用,且由于是已经下载好的数据,使用比较稳定。但是也由于是下载好的数据,不能保证数据都是全新的。...GDCquery用于查询GDC数据库,里面获取所有需要下载的TCGA数据的各项记录。 GDCdownload根据GDCquery的检索结果进行文件下载。...survival进行生存分析,使用survminer进行可视化。...log-rank和cox回归的区别在于是cox是半参数检验,需要对数据有一些先验假设,另外cox回归并不不局限于拟合数据是分类变量,也可以是连续变量。...对象,里面的plot就是实际的ggplto2对象,如果有添加risk.table的话,那么里面的table元素就是实际的ggplto2对象。
这些数值型变量是你要分析的目标,而分类变量则用于将数据分成不同的组。...在进行方差分析之前,你可能需要对数据进行一些预处理,例如处理缺失值(使用na.omit(), na.exclude(), na.fill()等函数)、转换数据类型(使用as.factor(), as.numeric...()等函数)或进行变量选择(使用子集选择或dplyr包的select()函数)。...在R中,你可以使用aov()函数来执行方差分析。这个函数需要一个公式,该公式描述了你要分析的数值型变量和分类变量之间的关系。...step7: 检查残差分布是否符合正态分布ANOVA比较的是均值,需要每个分组的残差服从正态部分plot(one.way, 2)采用Shapiro-Wilk对残差进行检验shapiro.test(x =
Rdata可以保存多个变量,下次使用只需要一次load可以的到多个数据。-Rdata不仅可以保存数据框,也可以保存其他任何数据结构,包括复杂的对象!...代码2实现结果和代码1相同2.6 练习library(dplyr)x = c(-1,-1,4,5,2,0)case_when(x>0 ~ "A", x==0 ~ "0",...table(x)2.7 for循环对x里的每个元素进行同一操作for(i in x){CODE}#x是向量;i是代称,i自动等于某个循环里的x元素for( i in 1:4){ print(i)}#for..., sum)#对test每一行求和向量/列表的隐式循环-lapply,批量操作### 2.lapply(list, FUN, …) # 对列表/向量中的每个元素实施相同的操作lapply(1:4,rnorm...生信实战中R语言的几个重点函数【小洁老师语录】编程能力,就是解决问题的能力,也是变优秀的能力R语言基础入门课程-到此结束7. 数据挖掘生信技能树小洁老师7.1 为什么数据挖掘?
介绍一种按照日期范围——例如按照周、月、季度或者年——对其进行分组的超简便处理方式:R语言的cut()函数。...2.aggregate函数不能对分组后的数据进行多种汇总计算,因此要用两句代码分别实现sum和max算法,最后再用cbind拼合。显然,上述代码在性能和易用性上存在不足。...##按照已有的类别数据,分类 g<-split(Cars93,Cars93$Origin) #按照cars93数据集,按照origin进行分组 ##例2:对矩阵分组(按列) m<-cbind...")],function(x) sum(x)) 4、subset()函数 利用subset()函数进行访问和选取数据框的数据更为灵活,subset函数将满足条件的向量、矩阵和数据框按子集的方式返回。...(参考来源:R高效数据处理包dplyr和data.table,你选哪个?) ?
= 0) |> mutate( text = case_when(id == 11 ~ label_exc1, id == 13 ~ label_exc2, TRUE ~...text), x = case_when(id == 3 ~ x + 0.15, id %in% c(11, 13) ~ x + 0.01, TRUE ~ x), y =...❝本节介绍到此结束,有需要学习R数据可视化的朋友,欢迎到淘宝店铺R语言数据分析指南,购买小编的R数据可视化案例文档(2024版),「购买将赠送2023年的绘图文档内容」。...目前此文档(2023+2024)「已经更新上传了150+案例文档」,每个案例都附有相应的数据和代码,并配有对应的注释文档,方便大家学习和参考。...❞ 2024更新的绘图内容同时包含数据+代码+markdown注释文档+文档清单,「小编只分享案例文档不额外回答问题无答疑问。」 在线同步更新 2024年案例图展示 2023年案例图展示
饼图通过将一个圆饼按照分类的占比划分成多个切片,整个圆饼代表数据的总量,每个切片(圆弧)表示该分类占总体的比例,所有切片(圆弧)的加和等于100%。 下面会介绍两种在R中实现饼图的方法。...首先我们构造一个模拟数据,如下所示,并用dplyr包中的arrange()进行排序(默认从小到大),faction表示数值所占比例,ymax进行累积占比,总值为1。...以下为两种不同标签的结果,为了区分,使用rewer.pal()函数将颜色进行变换。...ggplot2 包绘制饼图 使用R中ggplot2包的geom_bar()函数绘制堆积柱形图,然后将直角坐标系转换成极坐标系,就可以显示为饼图,但还是需要使用geom_text()函数添加数据标签。...但是可以看到:由于缺乏饼图与数据标签之间的引导线,总感觉美观度不够,所以推荐使用graphics包的pie()函数绘制饼图。 代码以及资料存在我的github上,可见文末原文链接。
领取专属 10元无门槛券
手把手带您无忧上云