注意 I,本代码主要使用data.table包完成,关于data.table包的相应知识会在涉及的时候进行讲解。在以后的课堂中,我们会重点介绍data.table这个包。...用data.table包处理多个事件日 本期课堂的核心代码只有下面5行(应用了data.table包的语法): > car <- event[, { > ns 条件,因此默认选中event的所有行。 对选中的变量进行操作(第二行代码)。此处,所有的操作都用大括号{}包裹了起来。 对event按照stk.id进行分组(第三行代码)。...在测试中,大猫设置了一个极端条件:模拟2500个股票(差不多是A股股票数),每个股票拥有1000个交易日的记录(差不多有4年的时间),平均50个交易日出现一个事件(模拟盈利公告这类事件的出现频率)。...这也是一个比较常见的设定。 大猫用这个数据集在自己的surface pro 4 i5版上连续跑了三遍,每一次的耗时分别为: 79s 81s 82s 三次平均耗时在80秒左右。
由于业务中接触的数据量很大,于是不得不转战开始寻求数据操作的效率。于是,data.table这个包就可以很好的满足对大数据量的数据操作的需求。...2、按条件行筛选 从前用subset的方式进行筛选比较多, new=14,select=a:f) (1)单变量 现在data.table与dplyr from_dplyr =...MA',"TX")) from_data_table = hospital_spending_DT[State %in% c('CA','MA',"TX")] dplyr用filter,content满足某种条件的进行筛选...merge,还有sql的方式(常见的合并方式可见: R语言数据集合并、数据增减、不等长合并 )。...参考文献: 些许案例,代码参考自以下博客,感谢你们的辛勤: 1、R语言data.table简介 2、超高性能数据处理包data.table 3、R语言data.table速查手册 4、R高效数据处理包
R语言︱数据集分组 大型数据集通常是高度结构化的,结构使得我们可以按不同的方式分组,有时候我们需要关注单个组的数据片断,有时需要聚合不同组内的信息,并相互比较。...介绍一种按照日期范围——例如按照周、月、季度或者年——对其进行分组的超简便处理方式:R语言的cut()函数。...")],function(x) sum(x)) 4、subset()函数 利用subset()函数进行访问和选取数据框的数据更为灵活,subset函数将满足条件的向量、矩阵和数据框按子集的方式返回。...pandas还好用的数据处理方式。...(参考来源:R高效数据处理包dplyr和data.table,你选哪个?) ?
写 在前面 本期大猫课堂将会开始一个新的系列:你不知道的R Tricks。这个系列将搬运stackoverflow.com(以后简称SO)上关于R数据处理的一些经典问答。...建立样例数据集的代码: ▶ set.seed(42) ▶ dt data.table(group = sample(0:1, 10000, rep = TRUE), n = 0L) 其中,group...你可以把group理解为一个人是否去健身房,如果连续出现1则意味着那几天每天都去,出现0则说明那人偷懒了。现在的问题是,我希望为每个连续的0或者1编号。...data.table包!...还记得在开篇大猫说这个技巧在事件研究法中特别实用吗?因为在事件研法中,我们一般会给事件日标为1,非事件日标为0,对于每个事件之间的一段时间,我们往往希望能够用1开始为其标号,这对于后续统计相当有用。
有个样例非常好的说明了两者不是一回事: 假设两个事件是相互排斥事件,当中之中的一个被确定已经发生,则还有一事件发生的概率降为0,显然两者是相关的。 其次为何要引入条件概率呢?...这是由于现实生活中相互独立的事件非常少,大多数事件的发生都与其它事件有关联,计算他们发生的概率时我们就须要採用条件概率的方式,当然假设两个事件是相互独立的就不必在意该事件的发生是否受其它事件的影响了。...超几何分布的期望为n*(r/N),方差为n*(r/N)*(1-r/N)*((N-n)/(N-1)),当N足够大的时候,记r/N为p,则期望为np,方差为np(1-p),显然在此情况下,超几何分布可用二项分布逼近...一些经常使用区间的概率是68.26%,95.44%,99.72% 连续修正因子:当用连续正态概率分布来近似离散二项概率分布时,从x值加减的0. 5值。...指数分布与泊松分布的关系在于,假设泊松分布给出了每一间隔中发生次数的适当描写叙述,则指数分布可给出两次发生之间间隔长度的描写叙述。 PS: 指数分布是偏度为2的严重右偏分布。
接下来,我就为大家分享几个我在工作当中最常用来做数据分析用到的包,dplyr和data.table,我保证你get到这两个包后,就再也不想用R里面自带的基础包函数进行数据分析了!!...data.table包 dplyr已经可以满足我们数据分析工作中大部分的需求,后来该包的作者又开发了一个炫酷吊炸天的包“data.table” 如果你的日常处理数据在几万到十几万行,那么用dplyr...作为课代表的我来帮大家简单的总结一下: 我们都知道R有个令人诟病的缺点就是跑起来耗内存,data.table相对于dplyr 更快、更节省内存了!...使用i DT[3:5] #选取3到5行的数据 class(DT) [1] "data.table" "data.frame" DT[v1=="A"] #基于条件的选择 DT[v1 %in% c("A",...(反正我用了data.table以后就再也不想用R里面基础包自带的函数了,今天就黑到这里,匿了~) ——Copyright Reserved by Erin
专注于生物方向的数据分析,一位编程爱好者。关注Python, R和大数据。 注:对随机变量及其取值规律的研究是概率论的核心内容。在上一个小结中,总结了随机变量的概念以及随机变量与事件的联系。...随机变量与事件的联系与区别 小结1中对这两个概念的联系进行了非常详细的描述。随机变量实际上只是事件的另一种表达方式,这种表达方式更加形式化和符号化,也更加便于理解以及进行逻辑运算。...一下子引用了一大段话,这段话非常清楚的解释了随机变量与事件的区别:就像变量与常量之间的差别那样,这样的差别比起我自己看到的要大得多。...离散型随机变量 离散型随机变量的取值在整个实数轴上是间隔的,要么只有有限个取值,要么是无限可数的。...图2:连续型随机变量的概率密度分布函数 常见的连续型随机变量包括以下几种: 均匀分布 指数分布 正态分布 概率密度函数的性质 所有的概率密度函数f(x)都满足下面的两条性质; 所有满足下面两条性质的一元函数也都可以作为概率密度函数
事件集合(或事件空间)F:一个集合,其元素A ∈ F(称为事件)是Ω的子集(即A ⊆ Ω是实验可能结果的集合) 概率测度:满足以下属性的函数P: F → R: 对于所有A ∈ F,P(A) ≥ 0, 如果...另一个事件空间是Ω的所有子集的集合。 对于第一个事件空间,满足上述要求的唯一概率测度由P(∅) = 0,P(Ω) = 1给出。...1.1 条件概率 设B是概率非零的事件。 在B条件下任何事件A的概率定义为: 换句话说,P(A|B)是观察到事件B发生后,事件A的概率测度。...X~Poisson(λ)(其中λ>0):用于建模罕见事件频率的,非负整数上的概率分布。 连续变量 X~Uniform(a, b)(其中a之间每个值都有相等的概率密度。...那么g的期望值按以下方式定义, 对于连续随机变量X和Y,类似的表达式为: 我们可以用期望的概念,来研究两个随机变量之间的关系。
Python/R/Julia中的数据处理工具多如牛毛「如pandas、spark、DataFrames.jl、polars、dask、dplyr、data.table、datatable等等」,如何根据项目需求挑选趁手的武器...7种Python工具 dask pandas datatable cuDF Polars Arrow Modin 2种R工具 data.table dplyr 1种Julia工具..., 详细代码,见每个柱子图上方, join性能 比较以下各种需求的效率, 详细代码,见每个柱子图上方, ---- 评估结果 groupby 可以看到Python中的Polars、R中的data.table...join 同样可以看到Python中的Polars、R中的data.table在join时表现不俗,详细, 0.5GB数据 join 5GB数据 join 50GB数据 join 小结 R中的data.table...、Python中的Polars、Julia中的DataFrame.jl表现连续出色,后续可以用起来,常用的pandas并无亮点~ REF:https://h2oai.github.io/db-benchmark
写 在前面 在目前为止所有小伙伴们向大猫请教过的R问题中,大猫总结了最常遇见同时也是比较难的三个问题,分别是(1)事件研究法;(2)分组回归;(3)滚动回归。...事件研究法在第一期中已经讲述,本期我们就来瞧瞧如何做分组回归~ PS:由于微信的限制,给大猫留言的小伙伴超过48小时后大猫就不能回复你们了。所以如果想联系大猫,可以按照文章最后的微信号加大猫微信哦。...keyby语句为data.table包中的分组语句,它能够对keyby中的每一个不同的值(这里为abcde)都分别跑一次回归。...其中的原理是,data.table最终的输出必须是一个class为list的元素,符合条件的除了list自己,还包括 data.frame,data.table等。...下 期预告 下期我们继续探索data.table包的强大功能,大猫教大家如何用一行代码搞定滚动回归!
过滤事件 需求场景 通过设置指定的过滤条件,当且仅当该事件满足条件,就将该事件过滤(不发送) 对应操作符类型 对应操作符使用 Filter() 作用 过滤 特定条件的事件 原理...: "+ integer); } }); // 使用2:过滤事件序列中 连续重复的事件 // 下面序列中,连续重复的事件...1s,所以前1次数据(1)会被抛弃,2会被保留 Thread.sleep(1500); // 因为2和3之间的间隔大于指定时间1s,所以之前被保留的2事件将发出...e.onNext(3); Thread.sleep(1500); // 因为3和4之间的间隔大于指定时间1s,所以3事件将发出 e.onNext...(6); Thread.sleep(1500); // 因为6和Complete实践之间的间隔大于指定时间1s,所以之前被保留的6事件将发出
过滤事件 需求场景 通过设置指定的过滤条件,当且仅当该事件满足条件,就将该事件过滤(不发送) 对应操作符类型 ?...: "+ integer); } }); // 使用2:过滤事件序列中 连续重复的事件 // 下面序列中,连续重复的事件...1s,所以前1次数据(1)会被抛弃,2会被保留 Thread.sleep(1500); // 因为2和3之间的间隔大于指定时间1s,所以之前被保留的2事件将发出...e.onNext(3); Thread.sleep(1500); // 因为3和4之间的间隔大于指定时间1s,所以3事件将发出 e.onNext...(6); Thread.sleep(1500); // 因为6和Complete实践之间的间隔大于指定时间1s,所以之前被保留的6事件将发出
最近才生出转行数据分析的想法,目前已经辞职,准备全身心地投入到学习中。 看了一些相关教程之后,觉得Python、R、SQL这些都只是工具,要转行数据分析,最需要培养的是数据分析思维。...对其中概率分布的内容做了一些笔记,作为 @猴子 的数据分析社群的第一关作业: 常用概率分布的Python实现方法 离散型概率分布 二项分布 二项试验 满足以下条件的试验成为二项试验: 试验由一系列相同的...泊松分布 泊松试验 满足以下条件的试验成为泊松试验: 在任意两个相等长度的区间上,事件发生的概率相等; 事件在某一区间上是否发生与事件在其他区间上是否发生所独立的。...连续型概率分布 注意:对于连续性概率分布,Python也会采取生成离散点的形式实现 均匀分布 概念:在任意相同长度间隔内分布概率相等的概率分布。...指数分布 指数分布与泊松分布类似,泊松分布描述了每一个区间内事件发生的次数,而指数分布描述了事件发生的事件间隔长度。
当我们研究真实世界的过程时,我们想了解许多影响实验结果的随机事件。不确定性无处不在,我们必须驯服它以满足我们的需要。只有如此,概率论和统计学才会发挥作用。...这被称为频率化的概率。 条件概率 通常,我们想知道某些事件发生时其它事件也发生的概率。我们将事件 B 发生时事件 A 也发生的条件概率写为 P(A | B)。以下雨为例: 打雷时下雨的概率有多大?...相依事件与独立事件 如果一个事件的概率不以任何方式影响另一个事件,则该事件被称为独立事件。以掷骰子且连续两次掷得 2 的概率为例。这些事件是独立的。我们可以这样表述 但是为什么这个公式可行?...现在你可以按相同的方式构造很多其它的例子。泊松分布适用于事件发生的时间和地点随机分布的情况,其中我们只对事件的发生次数感兴趣。泊松分布的主要特点为如下: 1....任何一个成功事件不能影响其它的成功事件; 2. 经过短时间间隔的成功概率必须等于经过长时间间隔的成功概率; 3. 时间间隔趋向于无穷小的时候,一个时间间隔内的成功概率趋近零。
难点在于我们都生活在一个混乱的世界中,多数情况下无法准确地测量事物。当我们研究真实世界的过程时,我们想了解许多影响实验结果的随机事件。不确定性无处不在,我们必须驯服它以满足我们的需要。...这被称为频率化的概率。 条件概率 通常,我们想知道某些事件发生时其它事件也发生的概率。我们将事件 B 发生时事件 A 也发生的条件概率写为 P(A | B)。以下雨为例: 打雷时下雨的概率有多大?...相依事件与独立事件 如果一个事件的概率不以任何方式影响另一个事件,则该事件被称为独立事件。以掷骰子且连续两次掷得 2 的概率为例。这些事件是独立的。我们可以这样表述 但是为什么这个公式可行?...现在你可以按相同的方式构造很多其它的例子。泊松分布适用于事件发生的时间和地点随机分布的情况,其中我们只对事件的发生次数感兴趣。泊松分布的主要特点为如下: 1....任何一个成功事件不能影响其它的成功事件; 2. 经过短时间间隔的成功概率必须等于经过长时间间隔的成功概率; 3. 时间间隔趋向于无穷小的时候,一个时间间隔内的成功概率趋近零。
难点在于我们都生活在一个混乱的世界中,多数情况下无法准确地测量事物。当我们研究真实世界的过程时,我们想了解许多影响实验结果的随机事件。不确定性无处不在,我们必须驯服它以满足我们的需要。...这被称为频率化的概率。 条件概率 通常,我们想知道某些事件发生时其它事件也发生的概率。我们将事件 B 发生时事件 A 也发生的条件概率写为 P(A | B)。以下雨为例: 打雷时下雨的概率有多大?...相依事件与独立事件 如果一个事件的概率不以任何方式影响另一个事件,则该事件被称为独立事件。以掷骰子且连续两次掷得 2 的概率为例。这些事件是独立的。我们可以这样表述 ? 但是为什么这个公式可行?...现在你可以按相同的方式构造很多其它的例子。泊松分布适用于事件发生的时间和地点随机分布的情况,其中我们只对事件的发生次数感兴趣。泊松分布的主要特点为如下: 1....任何一个成功事件不能影响其它的成功事件; 2. 经过短时间间隔的成功概率必须等于经过长时间间隔的成功概率; 3. 时间间隔趋向于无穷小的时候,一个时间间隔内的成功概率趋近零。
连续型随机变量:我们需要用积分替代求和: 边缘概率可能用的不多,但是也是基础来的,因为很多其他重要知识设计边缘概率。...则,它的数学期望 即此城市一个家庭平均有小孩1.11个。 相关系数:相关关系是一种非确定性的关系,相关系数是研究变量之间线性相关程度的量。由于研究对象的不同,相关系数有如下几种定义方式。...简单相关系数:又叫相关系数或线性相关系数,一般用字母r 表示,用来度量两个变量间的线性关系。...其概率函数为: (2)连续型随机变量分布: 均匀分布 在概率论和统计学中,均匀分布也叫矩形分布,它是对称概率分布,在相同长度间隔的分布概率是等可能的。...指数分布 指数分布是事件的时间间隔的概率,它的一个重要特征是无记忆性。这个是其最重要的性质!
使用if条件语句 可以使用if条件语句,将不需要重复运行的代码或者运行时间较长的代码包裹起来,运行一次即可 比如在单细胞多样品数据分析过程中,降维聚类分群步骤因为需要运行harmony以及多样品的降维等时间都较长...R包 qc.R;质控用到的脚本——计算并可视化线粒体、核糖体等基因百分比,可视化之后设置合理的阈值进行过滤 harmony.R:降维聚类分群系列代码脚本,会将降维聚类结果保存为rds文件存储起来 check-all-markers.R...小tips:将数据保存为Rdata或者Rds格式,方便读取使用以及衔接 实战项目管理方式 1. 使用Rproject管理工作目录 一般我们都会在文件夹里创建一个Rproj文件,管理对应的工作目录。...使用对应的文件夹管理输入或者输出文件 在单细胞实战分析中,输入数据会放在单独的文件夹里面,方便批量读取 library(data.table) dir='GSE171145_RAW/' samples=...代码整理为R脚本或者Rmd格式文件 结合将长脚本分开为多个脚本的方式,可以在step1里面调用整理好的脚本进行分析 写在结尾 要养成整理代码和工作目录的好习惯,最好命名的时候按照一定的规律命名,方便后续查找使用
视频:R语言生存分析原理与晚期肺癌患者分析案例 **,时长08:41 生存分析是一种回归问题(人们想要预测一个连续值),但有一个转折点。...本文用R语言生存分析晚期肺癌患者数据 ( 查看文末了解数据获取方式 )。 普通最小二乘回归方法不足,因为事件发生的时间通常不是正态分布的,并且模型无法处理删失,但这在生存数据中很常见。...plot(survfit(Surv(time, status) ~ 1, data = lung), 基数R中的默认图显示了具有相关置信区间(虚线)的阶跃函数(实线) 水平线代表间隔的生存时间 时间间隔由事件终止...垂直线的高度显示累积概率的变化 带有刻度线的经过删失的观察结果会减少间隔之间的累积生存期。...tmerge 为每个患者的不同协变量值创建一个具有多个时间间隔的长数据集 event 创建新的事件指示器,以与新创建的时间间隔一致 tdc 创建与时间相关的协变量指标,以与新创建的时间间隔一致 时间相关协变量
这篇主要比较R语言的data.talbe和python的pandas操作数据框的形式, 学习两者的异同点, 加深理解两者的使用方法。...1. data.table VS pandas 这里使用R语言的data.tablet包和python的pandas进行对比....使用R语言, 通过data.table创建数据框. library(data.table) set.seed(123) DT data.table(V1=c(1,2),V2=c("A","B","...如果选择V2等于A或者等于B的列 DT[V2 == "A"|V2=="B"] ? 也可以使用%in%进行多条件选择 DT[V2 %in% c("A","B")] ?...3.4 pandas保存文件 如果是R的思维: write.csv(object, "file.csv") 但是pandas的风格是 object.to_csv("file.csv") 正确有效的代码: