大型数据集通常是高度结构化的,结构使得我们可以按不同的方式分组,有时候我们需要关注单个组的数据片断,有时需要聚合不同组内的信息,并相互比较。
由于业务中接触的数据量很大,于是不得不转战开始寻求数据操作的效率。于是,data.table这个包就可以很好的满足对大数据量的数据操作的需求。
本文介绍了如何使用dplyr和data.table两个R包进行数据清洗、数据加工和数据分析,通过几个实际案例展示了dplyr和data.table的常用功能和高效操作。
数据框来源主要包括用代码新建(data.frame),由已有数据转换或处理得到(取子集、运算、合并等操作),读取表格文件(read.csv,read.table等)及R语言内置数据
R语言data.table包是自带包data.frame的升级版,用于数据框格式数据的处理,最大的特点快。包括两个方面,一方面是写的快,代码简洁,只要一行命令就可以完成诸多任务,另一方面是处理快,内部处理的步骤进行了程序上的优化,使用多线程,甚至很多函数是使用C写的,大大加快数据运行速度。因此,在对大数据处理上,使用data.table无疑具有极高的效率。这里我们主要讲的是它对数据框结构的快捷处理。
data.table包提供了一个加强版的data.frame,它运行效率极高,而且能够处理适合内存的大数据集,它使用[]实现了一种自然地数据操作语法。使用下面命令进行安装:
因为自己之前学习过一部分B站生信技能树的R语言入门视频,但实际使用时经常会遇到一些问题,这次参加了生信技能树的系统培训班想查漏补缺。这里是整理的第一周学习笔记,主要是针对以前存在的一些问题有了更清晰的认识。
使用mtcars数据集,建立一个回归任务,使用两个特征预测目标变量mpg(每公里油耗)的值
数据处理在数据分析流程中的地位相信大家都有目共睹,也是每一个数据从业者面临的最为繁重的工作任务。 在实际应用场景下,虽然SQL(SQL类专业的etl语言)是数据处理的首选明星语言,性能佳、效率高、容易培养数据思维,但是SQL没法处理构建全流程的数据任务,之后仍然需要借助其他数据分析工具来对接更为深入的分析任务。 R语言作为专业的统计计算语言,数据处理是其一大特色功能,事实上每一个处理任务在R语言中都有着不止一套解决方案(这通常也是初学者在入门R语言时,感觉内容太多无从下手的原因),当然这些不同方案确实存在
也许很多小伙伴都注意到了,这一期的文章和往期的排版有所不同,因为从这一期开始,大猫将使用markdown来进行写作,并在最后用css来进行渲染输出。原来大猫使用的是秀米等富文本编辑器,最然可以实现很花哨的效果,但是每次编辑的时间可能都比写作的时间长,而且富文本编辑器对于代码块的支持极弱,语法高亮没有就算了,但是代码块无法水平滚动就不能忍。相比之下,markdown不仅对于代码有着先天的支持,而且只要在第一次设定好css,以后每次编辑的时间几乎为零,直接复制粘贴到公众号平台就可以渲染出非常漂亮的网页,简直美滋滋!
(1)read.table()和read.csv()两者之间没有不可逾越的鸿沟,只是方便读取某一类文件类型;报错就需要添加对应的参数。
今天在使用连接操作时发现:虽然都是合并操作函数,dplyr 包里的 *_join() 和基础包里面的 merge() 存在差异,不同的数据结构,结果也会存在偏差。
将你的数据整理好是一个可敬的、某些情况下是至关重要的技能,所以作者使用了数据木匠这个词。这是本书最重要的一章,将涉及以下内容:
Python和R是数据科学生态系统中的两种主要语言。它们都提供了丰富的功能选择并且能够加速和改进数据科学工作流程。
#没有任何提示就是成功了,如果有warningxx包不存在,用library检查一下。
传统KEGG(通路富集分析)和GO(功能富集)分析时,如果富集到的同一通路下,既有上调差异基因,也有下调差异基因,那么这条通路总体的表现形式究竟是怎样?是被抑制还是激活?或者更直观点说,这条通路下的基因表达水平在实验处理后是上升了呢,还是下降了呢?由于没有采用有效的统计学手段去分析某条通路下的差异基因的总体变化趋势,这使得传统的富集分析结果无法回答这些问题。
对日期进行插值是一项非常常见的任务。很多时候我们手头的时间序列都是不完整的,当中总会因为这样那样的原因漏了几天的观测,例如股票停牌了,观测仪器坏了,值班工人生病了等等。在分析时,我们为了获得完整的时间序列就需要“插入”那些丢失的日期。
但是实际上它里面的单细胞转录组测序 是来源于公共数据集GSE182434的4例病人样本(DLBCL002 、DLBCL007、 DLBCL008、DLBCL111),也就是说他们省下来了4个病人的肿瘤单细胞转录组费用,哪怕是按照一两年前的均价2.5万的单个10x费用,也算是省下来了10万经费!
这篇主要比较R语言的data.talbe和python的pandas操作数据框的形式, 学习两者的异同点, 加深理解两者的使用方法。
data.table包提供了一个加强版的data.frame。它运行效率极高,而且能够处理适合内存的大数据集。它通过[ ]实现了一种自然的数据操作语法。
对于任意一天t,在[t - n, t]的区间内进行回归。如果数据一共有N天,那么就会得到N - n个数据点
data.table对于大数据的数据整理较为便捷,很多的时候比data.frame效率更高,一般情况下结合管道符号进行计算
本期大猫课堂将会开始一个新的系列:你不知道的R Tricks。这个系列将搬运stackoverflow.com(以后简称SO)上关于R数据处理的一些经典问答。大猫除了翻译原文,还会从初学者的角度为代码补充详细的解释。其实这些问题基本上都是大猫自己在数据处理过程中实际遇到的,看了SO上的答案不禁拍案叫绝,忍不住和大家分享。
使用c("<name of col1>", "<name of col2>")和.(col1, col2)效果一样
R语言data.table包是自带包data.frame的升级版,用于数据框格式数据的处理,最大的特点快。包括两个方面,一方面是写的快,代码简洁,只要一行命令就可以完成诸多任务,另一方面是处理快,内部处理的步骤进行了程序上的优化,使用多线程,甚至很多函数是使用C写的,大大加快数据运行速度。因此,在对大数据处理上,使用data.table无疑具有极高的效率。这里主要介绍在基因组数据分析中可能会用到的函数。
本期“大猫的R语言公众号”由“村长”供稿。村长,数据科学、指弹吉他及录音工程爱好者,浙大金融学博士在读,在data.table包和MongoDB的使用上有较多经验。
在目前为止所有小伙伴们向大猫请教过的R问题中,大猫总结了最常遇见同时也是比较难的三个问题,分别是(1)事件研究法;(2)分组回归;(3)滚动回归。事件研究法在第一期中已经讲述,本期我们就来瞧瞧如何做分组回归~
tidyverse作为R语言数据分析中的瑞士军刀,非常好用,一个小小的缺点就是速度慢,data.table速度快,所以他们团队又开发了dtplyr,加快运行速度。
连续两次求贤令:曾经我给你带来了十万用户,但现在祝你倒闭,以及 生信技能树知识整理实习生招募,让我走大运结识了几位优秀小伙伴!大家开始根据我的ngs组学视频进行一系列公共数据集分析实战,其中几个小伙伴让我非常惊喜,不需要怎么沟通和指导,就默默的完成了一个实战!
主要用Seurat V3. Broad Institute的single cell portal上面存放了他们发表的single-cell文章的数据 这里一共是3个文件
4) R语言读取(表格文件读入到R语言里时,就得到了一个数据框,对数据框的修改不会同步到表格文件。
1写在前面 不知道大家都是怎么完成qPCR的计算的,在不会R的时候,我是用一个祖传的Excel表进行计算的。🤣 但是,一直有个缺点,如果需要计算的量比较大时,就不方便了,去搜了一下文献,发现了一个最近发表的R包,不仅可以计算反转录的RNA体积,还可以帮助选择定量方法,简直是神仙R包,本期就介绍一下它的使用吧。🥰 感谢原作者的开发,嘿嘿,文末有引用方法。👀 2用到的包 rm(list = ls()) library(tidyverse) library(ggsci) library(qPCRtools) li
Part5文件读取 >write.csv(test,file="example.csv") > read.csv()通常读取CSV格式 > write.table(test,file="example.txt") > read.table()通常读取txt格式 > save(test,file="example.Rdata") > load("example.Rdata") > a <- data.table::fread("soft.t
if(!require())install.packages()----会返回:逻辑值!
从这期开始,大猫课堂将会推出一个新的系列:R练习50题,目的是使用50道练习题让大家掌握常用的数据操作,例如寻找每组最大的N个观测等。本练习题来源于Renkun (github.com/renkun-ken/r-data-practice) 在Github上的共享,我们认为它包括了绝大多数实践中会遇到的问题,特别具有代表性。只可惜Renkun并没有提供答案,所以我们在这里提供我们的版本。
因为代码是收费的,所以需要简单的回复一下读者的提问,就是大家感兴趣这个代码到底该如何移植到转录组测序数据分析,而且读者给出来了一个案例,就是2020的文章《Transcriptomic profiling across the nonalcoholic fatty liver disease spectrum reveals gene signatures for steatohepatitis and fibrosis》,它对应的数据集是:GSE135251,在其页面可以看到是216 snap frozen liver biopsies, comprising 206 NAFLD cases with different fibrosis stages and 10 controls were studied.
有很多初学者遇到的问题,写出来,更好的自我总结,正所谓:“学然后知不足,教然后知困”。以输出(写博客)倒逼输入(学习),被动学习, kill time,是一个不错的方法。
前几期的大猫课堂中大猫教了大家“10行代码搞定滚动回归”,在那一期的最后大猫说文章中给出的是目前大猫看到的最快的实现方法,“如果有发现更快方法的小伙伴一定要联系大猫”,emmmm……现在看来大猫不得不自己寻找更快的方法了,因为大猫前几天遇到了这样一个需求:需要处理大约2700个股票的120日滚动回归,每次滚动回归包含一个OLS以及一个GARCH拟合。按照平均每个股票7年历史,每年250个交易日来算,那就大约需要完成2700*7*250*2=940万次拟合!这个运算在大猫的i7 3.5G+32G+1T SSD的地球人上似乎要永远运行下去,于是大猫只得乖乖停止进程思考提高运算效率的办法。
Hello亲爱的小伙伴们,上期已经讲到如何对单一事件日计算超额收益,本期将会教大家如何针对多个股票多个事件日计算超额收益,Let's go!
本期的问题来自于stackoverflow.com,由于大猫实在想不出简洁的翻译,想来想去还是原标题最能描述问题,所以干脆直接借用。如果硬要翻译的话,大概就是“当某条件成立时,找到这个观测后N行的观测”。
包是否下载成功的唯一标准是library()没有error,当提示package not available时,原因可能为:
如何找到somatic的突变信息的maf文件,仍然是从UCSC的XENA浏览器里面选择NSCLC的里面的LUAD数据集即可,这个是网页里面的鼠标点击操作。值得注意的是网页里面关于同一个癌症有两个跳转链接哦(其中一个带有GDC的前缀):
在23年3月份的时候(下意识想说今年了hhh,恍然发现已经24年),菜鸟团作者就整理过不同格式的单细胞数据读取的方法,是基于V4版本的。
注意默认nThread=getDTthreads(),即使用所有能用的核心,但并不是核心用的越多越好,本人亲自测试的情况下,其实单核具有较强的性能,只有在数据大于3Gb的情况下,开启10核(我的机器全部核心30多核)效率才比一个核心更高,而默认使用全部的核心效率一直非常低。因此对于不是非常巨大的文件,建议设置为1,不要使用全部核心
1. gset <- getGEO("GSE149507",destdir = ".",getGPL = T)→gset[["GSE149507_series_matrix.txt.gz"]]@featureData@data
注意:一定要经常检查数据,注意读取之后是数据框还是矩阵,取完列里面是数值还是字符,处理完是什么类型等等
本期还是由村长来为大家供稿,这期讲一个村长遇到的关于data.table比较有趣的问题,希望大家支持!!
做单细胞数据分析的时候,我们经常会从公共数据库,或者从别人那里得到一个seurat对象,有些人可能想从这个seurat对象中提取原始的表达矩阵,自己再从头分析一遍。那么今天小编就讲讲怎么实现,我们以SeuratData这个包里面自带的pbmc3k这套数据为例。
不知道大家有没有用read.table和read.csv读取过文件,当文件不大的时候你可能还感觉不出读取速度,但是当文件比较大的时候,比如有上万行的时候,你就会感觉到等待时间明显变长,甚至无法忍受。
领取专属 10元无门槛券
手把手带您无忧上云