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

R语言学习笔记之——数据处理神器data.table

在实际应用场景下,虽然SQL(SQL类专业etl语言)是数据处理首选明星语言,性能佳、效率高、容易培养数据思维,但是SQL没法处理构建全流程数据任务,之后仍然需要借助其他数据分析工具来对接更为深入分析任务...R语言作为专业统计计算语言,数据处理是其一大特色功能,事实上每一个处理任务在R语言中都有着不止一套解决方案(这通常也是初学者在入门R语言时,感觉内容太多无从下手原因),当然这些不同方案确实存在着性能和效率绝大差异...说了这么多,绕了这么大弯子想干啥呢,没错今天又要给自己升级新技能啦,这次主角儿是 data.table 一个R语言高性能数据处理包,一个包可以涵盖以上所说数据处理大部分内容,而且操作高度抽象化话...可怜机器呀,内存和磁盘要撑爆了~ 使用data.tableI/O函数进行导入: rm(list=ls()) gc() library("data.table") system.time(...数据合并data.table数据合并方式非常简洁; DT <- data.table(x=rep(letters[1:5],each=3), y=runif(15)) DX <- data.table

3.6K80

R︱高效数据操作——data.table包(实战心得、dplyr对比、key灵活用法、数据合并

data.table中,还有一个比较特立独行函数: 使用:=引用来添加更新一列(参考:R语言data.table速查手册) DT[, c("V1","V2") := list(round(exp(V1...通过预先设置key,然后再来进行筛选方法,更加高效,而且节省时间。...这里先设置key,然后直接通过list(M,Y)就可以达到第一条代码效能,而且时间更短。...%>%功能是用于实现将一个函数输出传递给下一个函数一个参数。注意这里,传递给下一个函数一个参数,然后就不用写第一个参数了。在dplyr分组求和过程中,还是挺有用。...在data.table中有三类数据合并方式: 1、直接用[] data_one[data_two,nomatch=NA,mult="all"] 以第一个数据为基准,依据key进行合并,只出现重复部分

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

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

R语言︱数据集分组 大型数据集通常是高度结构化,结构使得我们可以按不同方式分组,有时候我们需要关注单个数据片断,有时需要聚合不同组信息,并相互比较。...一、日期分组 1、关于时间包都有很多很好日期分组应用。...1 2 [6,] 1 2 [7,] 1 2 [8,] 1 2 [9,] 1 2 [10,] 1 2 ##后续处理 ##计算长度和均值...(iris$setosa)] #按照照setosa大小,重排Sepal.Length数据列 四、dplyrdata.table data.table可是比dplyr以及python中...data.table比较简洁一步搞定,dplyr花了两步,不过也dplyr也可以通过%>%来实现一步搞定。%>%功能是用于实现将一个函数输出传递给下一个函数一个参数。

20.6K32

RNA-seq入门实战(三):在R里面整理表达量counts矩阵

大家开始根据我ngs学视频进行一系列公共数据集分析实战,其中几个小伙伴让我非常惊喜,不需要怎么沟通和指导,就默默完成了一个实战!...) # ggplot2 stringer dplyr tidyr readr purrr tibble forcats library(data.table) #多核读取文件 setwd("C:/Users...基因ID转换 若上游中采用是UCSC基因和gtf注释文件,则表达矩阵行名就是我们常见gene symbol基因名;若上游采用是gencodeensembl基因和gtf注释文件,那么我们就需要将基因表达矩阵行名...在转换时经常会出现多个Ensembl_id对应一个gene symbol情形,此时就出现了重复gene symbol。此时就需要我们在进行基因ID转换前去除重复gene symbol。...在这里展示筛选出至少在重复样本数量表达量counts大于1行(基因),可以看到超过一半以上基因都被筛掉了。

15.8K45

《高效R语言编程》6--高效数据木匠

这是本书最重要一章,将涉及以下内容: 使用tidyr整理数据 使用dplyr处理数据 使用数据库 使用data.table处理数据 软件配置 library("tibble") library("tidyr...") library("stringr") library("readr") library("dplyr") library("data.table") 高效tibble包 tibble定义了新数据框...用法是:gather(data,key,value,-religion),分别是数据框,要转换成分类列名,单元列名和清除收集变量 使用seperate()分割联合变量 分割是指将一个实际由两个变量组成变量分割成两个独立列...非标准计算 代码中没有引号包裹原始名字,这种方式叫做非标准计算(NSE),高效交互使用函数,减少键盘输入,允许Rstudio中自动完成。还是函数名多个_。...数据库与dplyr 必须使用src_*()函数创建一个数据源。# 使用data.table()处理数据 是dplyr替代,两个哪个好存在争议,最好学一个一直坚持下去。

1.9K20

「Workshop」第一期:我理解(生信)数据分析核心基础

另外,为了更好地学习和交流,我尝试在组织 Workshop,前几期会由我根据一些主题讲述数据分析操作、软件包开发等。后续也将通过轮流方式组织大家一起学习编程、数据分析流程、生信流程等等。...管道 tidyr purrr ggplot2 tidyverse 家族(https://r4ds.had.co.nz/) data.table Linux shell 建模与统计分析 stats/(cars...markdown rmarkdown https://github.com/yihui/xaringan (幻灯片) Jupyter notebook Shiny 工作流程 先思考下问题该怎么解决,尽量拆分为小问题步骤...思考用什么环境(R/Python/Shell)、什么工具(dplyr/data.table/ggplot)解决,脑子里有一个大概解决方案 尝试解决 不成功思考问题出在逻辑上还是程序实现上 如果逻辑有问题...,返回思考并优化解决方案 如果程序有问题,(谷歌)搜索查找具体问题解决方案请教他人 解决后检查逻辑是否存在问题,代码是否可以优化(包括逻辑上和效率上) 记录结果(图片、表格等) Git与GitHub

1.3K40

V5版seurat读取不同格式单细胞数据

读取不同格式单细胞转录数据及遇到问题解决办法 当时我在学习单细胞时候,读取数据都是按照推文里面的方法使用,也就有了不同格式单细胞数据下载及读取分析流程这篇笔记。...那我们可以先把多个样品合并成为了一个超级大表达量矩阵,并使其行名为基因名,列名为barcodes信息,后面直接针对它来使用CreateSeuratObject函数去构建Seurat对象,就是完美的下游分析输入数据啦...使用Seuratv5来读取多个10x单细胞转录矩阵 使用Seuratv5来读取多个不是10x标准文件单细胞项目 不同格式单细胞多数据读取方法 读取数据进行分析之前,我们需要安装加载需要R包,...(Seurat) library(clustree) library(cowplot) library(data.table) library(dplyr) library(ggplot2) library...head(sce.all@meta.data) h5格式 h5格式其实也有对应函数Read10X_h5()可以直接读取,但是Read10X_h5使用循环读取多个数据文件,会返回一个list,需要手动整合一下

2.5K23

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

数据框数据框创建数据框来源主要包括用代码新建(data.frame),由已有数据转换处理得到(取子集、运算、合并等操作),读取表格文件(read.csv,read.table等)及R语言内置数据函数.../则为上一级)#文件是由生成它函数决定,不是由后缀决定,save为csv实际上还是一个Rdata#readr包可以实现base包中类似功能library(data.table)#其中fread...函数可以避免此前错误a 0] #先取出列名为gene向量,在给出一个一一对应逻辑值向量数据框修改修改数据相当于定位取出数据后赋值,赋值需对应元素向量df1[3,3]...#取子集方法同数据框t(m) #转置行与列,数据框转置后为矩阵as.data.frame(m) #将矩阵转换为数据框列表列表内有多个数据框矩阵,可通过list函数将其组成一个列表l <- list(m1

7.7K00

广义估计方程和混合线性模型在R和python中实现

,通常会在一段时间内对多个同一研究对象进行多次重复测量,这类数据一般称为纵向数据。...预测变量还需要加上一个时间x尿蛋白交互项(交互项是指不同尿蛋白等级会有不同GFR下降斜率和下降曲线)数据特点summary(dataset) dataset %>% group_by(patient...除此之外,确定相关关系,还需要考虑到观测之间相关性是相互独立还是相互依赖等各种情况。...里不同观察是等相关,并且是时间不依赖autoregressive correlation:假设一个cluster里不同观察是等相关,假设一个cluster观察是时间依赖unstructured...区分混合线性模型中随机效应和固定效应是一个重要概念。固定效应是具有特定水平变量,而随机效应捕捉了由于分组聚类引起变异性。比如下方正在探究尿蛋白对来自不同患者GFR影响。

18700

ProTICS 揭示了不同分子亚型中肿瘤浸润免疫细胞预后影响

4.1.1 ProTICS pipeline 环境配置 #请在当前环境下加载如下R包 suppressMessages({ library(data.table) library(dplyr)..."’ # 在这里出现一个经典报错,可以解决方案dplyr::select seqd<-dplyr::select(sig_expr,c(colnames(sig_expr)[1],Surv$patient_id...探索总结 前期第一个乳腺癌分类包TNBC.CMS是通过预定义基因集将乳腺癌分为四个亚群,输入数据是单一转录数据。...这里ProTICS相较于前者,输入数据是包含转录数据、甲基化表达谱和临床预后数据,使用相较新算法NTD(非负张量分解)将肿瘤患者样本分成多个分子亚型。...另外,作者在多个肿瘤样本中探索pipeline结果可信性,表明这个pipeline在其他肿瘤中可行性,总的来说, 确实是一个很棒分类包。

56020

手把手教你用R语言读取CSV文件

如前面所述,第一个参数是文件名(字符型变量)。注意我们如何显式地使用参数名file、head和sep。函数参数能够按位置顺序赋值,而不用显式指定参数名,但指定参数名是最佳实践。...▲表6-1 读取大文本文件函数及其默认参数 大文件使用read.table函数读取到内存比较慢,幸运是有解决方案。...注意,数据读取为tbl_df对象,它是tbl扩展,也是data.frame扩展。tbl是data.frame特殊类型,它在dplyr包中定义。每列数据类型显示在列名下面,这是个很好功能。...02 fread函数 另一个读取大量数据函数是data.tablefread函数。第一个参数是读取文件路径或者URL。header参数表示文件第一行是列名,sep指定分隔符。...read_delim或者fread函数读取文件都非常快,具体使用哪个函数取决于dplyr或者data.table包中哪个更适合数据处理。 关于作者:贾里德 P. 兰德(Jared P.

21.4K21

单细胞多数据集整合示例

有很多人有或多或少原因并不会自己做单细胞实验送测序,加上目前单细胞转录数据上传在公共数据库数据也有不少了,大家会倾向于从公共数据集中筛选出多个数据集来做整合分析。...所以这周推文打算从理论角度,跟大家分享一下多个数据集整合分析代码。...举个例子,如果只关注某一肿瘤组织中TcellBcell髓系细胞,选取该种肿瘤样本数据集,两到三个数据集合并分析,提取TcellBcell髓系细胞亚群,那么在分析这种数据时候就会遇到一个问题。...是在对多个不同数据集分别降维分群后再提取各个数据集TcellBcell髓系细胞亚群整合到一块?」 「2. 还是说在对单细胞数据集一开始分析时候,就定义好分组整合到一块呢?」...以下代码比较详细展示了第一次降维分群,提取髓系亚群后再次降维分群,定义细胞亚群。 最后部分还提供怎么把三数据合并代码。

85711

R语言︱机器学习模型评估方案(以随机森林算法为例)

在刚刚接触机器学习时候,觉得在监督学习之后,做一个混淆矩阵就已经足够,但是完整机器学习解决方案并不会如此草率。需要完整评价模型方式。...,其余K-1子集作为训练集,以此重复k次,这样会得到K个模型,用这K个模型在k个测试集上准确率(其他评价指标)平均数作为模型性能评价指标。...,其实就是进行单因子方差分析,在进行方差分析之前首先要检验方差齐性,因为在方差分析F检验中,是以各个实验总体方差齐性为前提; 方差齐性通过后进行方差分析,如果间差异显著,再通过多重比较找出哪些之间存在差异...以下两个方法检验,都需要因子型分类数据(这里是树J折数i,要转化为因子型)。...iForest是怎么构造,给定一个包含n条记录数据集D,如何构造一个iForest。

4.4K20

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

数据集如果用于统计与绘图,需要满足一定格式要求,(Wickham, 2014) 称之为 整洁数据 (tidy data),基本要求是每行一个观测,每列一个变量,每个单元格恰好有一个数据值。...忽略最后一个即表示选择倒数第二个。 2.6 arrange 按照数据框里某列某几列,对所有行进行排序。可以使用 desc 产生倒序,写入多个列使其按照多个列进行排序。...2.10 表格拆分与合并 将同一列中内容分为两列内容。将两列内容合并为同一列内容。 首先还是可以创建一个数据框。...对于即将合并新列,需要使用引号;但对于想要合并多个列名,可以不用使用引号。sep 参数设定多列合并后不同数据分隔使用分割符。...extract 除了seperate 外,函数 extract() 可以按照某种正则表达式表示模式从指定列拆分出对应于正则表达式中捕获一列多列内容。

10.8K30

R语言学习笔记-Day4

-可以粗略理解为多个函数打包存档-有的R包中会有数据,甚至只有数据没有函数-包含函数/数据、帮助文档、描述文件等。...Linear Models for Microarray DatabrowseVignettes("limma")7.3 VignettesbrowseVignettes("limma") #同上7.4 列出一个包里都有哪些函数数据...:1.先不加row.names参数进行读取;2.处理第一列重复值(去重复,两行求平均值,合并为一行);3.将第一行设为行名3 数据框导出CSV格式:write.csv()write.csv(ex2,file...data.table数据结构,且不支持直接设置行名rio:import()import_list() #导入多个工作簿excel表格export()data.table读取library(data.table...”列设置为行名rio读取library(rio)#一个函数支持读取多种格式,见帮助文档ex1 = import("ex1.txt")#一个函数支持导出多种格式,见帮助文档export(ex1,file

13510

《高效R语言编程》5-高效输入输出

在读取一行数据之前,应该先考虑下重复数据管理通用规则,不改写原始数据。原始文件视为只读,保留原始文件名字并说明来源,是一个好办法。...使用rio包import()能导入各种格式数据,避免加载特定格式库麻烦。 对于高效导入大文本文件,使用readrdata.table与read.table()相当。...总的来说,三者在读入数据差异超过了代码执行时间,与基础R相比,其他两个速度提升是一定程度牺牲健壮性为代价。...R外预处理文本 读入一个4G文本文件,会耗尽16G内存RAM,可以使用shell命令split等分割文件,采用数据库是另外一个解决方案。...访问包中数据 示例数据可以用如下方式查看:data(package="dplyr") Data sets in package ‘dplyr’: band_instruments

1.5K20

学习R语言,一篇文章让你从懵圈到入门

Pivitol(Greenplum)和HAWQ数据库中数据 dplyr:提供了一个访问常见数据库接口 data.tabledata.tablefread()函数可以快速读取大数据集 git2r...:用于访问git仓库 数据整理 以下R包主要用于数据整理,以便于你后续建模分析: tidyr:用于整理表格数据布局 dplyr:用于将多个数据表连接成一个整齐数据集 purrr:函数式编程工具...dplyr一个用于高效数据清理R包。...tibble:高效显示表格数据结构 stringr:一个字符串处理工具集 lubridate:用于处理日期时间数据 xts:xts是对时间序列数据(zoo)一种扩展实现,提供了时间序列操作接口...drat:一个用于创建和使用备选R包库工具 testthat:单元测试,让R包稳定、健壮,减少升级痛苦。 roxygen2:通过注释方式,生成文档,远离Latex烦恼。

3.7K40

学习R语言,一篇文章让你从懵圈到入门

Greenplum)和HAWQ数据库中数据 dplyr:提供了一个访问常见数据库接口 data.tabledata.tablefread()函数可以快速读取大数据集 git2r:用于访问git...仓库 数据整理 以下R包主要用于数据整理,以便于你后续建模分析: tidyr:用于整理表格数据布局 dplyr:用于将多个数据表连接成一个整齐数据集 purrr:函数式编程工具,在做数据整理时非常有用...dplyr一个用于高效数据清理R包。...tibble:高效显示表格数据结构 stringr:一个字符串处理工具集 lubridate:用于处理日期时间数据 xts:xts是对时间序列数据(zoo)一种扩展实现,提供了时间序列操作接口。...drat:一个用于创建和使用备选R包库工具 testthat:单元测试,让R包稳定、健壮,减少升级痛苦。 roxygen2:通过注释方式,生成文档,远离Latex烦恼。

3.6K60
领券