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

R练习50题 - 第一期

写在前面 从这期开始,大猫课堂将会推出一个新系列:R练习50题,目的是使用50道练习题让大家掌握常用数据操作,例如寻找每组最大N个观测等。...例如股票600128,如果它一共有100天观测,那么我们会出现100个重复结果。为了去重,我们需要借助于data.tableunique函数。 我们希望最终输出是一个字符串向量: ?...unique:找出symbol不重复值。 在data.table语法,先进行列选择操作,再对列进行处理。所以上述语句会先执行str_detect,再执行unique。...ifelse(close - pre_close > 0, "UP", "DOWN")意思是,如果今天收盘价高于昨天收盘价,那么取值UP,反之取值DOWN。...整个代码执行顺序是:先选择(逗号空白),再分组(keyby语句),最后进行组间统计(num语句)。 我们答案、列以及分组三条语句各占一,实际上这仅仅是为了让代码更直观。

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

Matt Dowle 演讲节选(一)

data.table 也是 github 第八受关注 R 开源项目。此外,data.table是目前 RStudio CRAN 镜像中下载最多包。...在实战data.table 获得了 Kaggle 排名第一 Gilberto 青睐,他原话很直接—— data.table is COOL!!!...2014年洛杉矶会议上演讲。在这段21分33秒演讲,Matt 回顾了自己在伦敦工作经历(雷曼兄弟以及所罗门兄弟)、自己与 R 偶遇以及开发 data.table 动机。...演讲全程笑声不断,充分体现了腐国人一本正经说笑话能力╮(╯▽╰)╭ 采 访节选:初见 S-PLUS 1996年我本科毕业,拿到了数学和计算机学位,开始在伦敦雷曼兄弟工作(啊!)...1999年,我跳槽到伦敦所罗门兄弟(也是当时最大之一),在所罗门兄弟第一天,我遇到了 S Poertry (R 某个祖先)作者 Patrick Burns——这个男人就是以后所有故事起点

63220

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

()函数设置 setkey(dt,a) setkey(DT, colA, colB),可以使得检索和分组更加快速。...DT数据集按照x分组,然后计算v变量和、最小值、最大值。 (2)dplyr函数利用%>%(链式操作)来改进: 链式操作是啥意思呢?...2、on=""方式 DT[X, on="x"] 这里on指的是DT变量变量名称,X还是按照key,如果没设置就会默认第一为key。...在data.table操作跟data.frame很像,可以data[1,]就可以获得第一数据,同时也可以用,data[1]来获得信息,这个是data.table特有的。...(x)] 还有 data$x 如果有很多名字很长指标data.table如果按列进行遍历呢? data[,1]是不行,选中列方式是用列名。

7.4K43

R练习50题 - 第二期

习题预览 今天我们继续做题,由于整个题目按照从易到难排列,所以今天题目并不会很难。先看一下预览: 每天每个交易所上涨、下跌股票各有多少? 沪深300成分股,每天上涨、下跌股票各有多少?...练习 4 沪深300成分股,每天上涨、下跌股票各有多少? 分析: 本题仍旧是Ex-2拓展,只不过要求我们进行行选择操作。在data.tabledt[i,j,by]语法,i代表选择操作。...data.table只会选择为True那些元素。 在data.tabledt[i, j, by]语法,先执行行选择操作i, 再执行分组操作by, 最后执行列操作j。...注意以上运算结果是一个取值为True或False向量,data.table最终会挑选出为True那些。 我们仍旧使用ifelse函数生成updown这个变量。...ifelse(ret > 0.05, "up5%+", "down5%+")意思是,如果条件(ret > 0.05)成立,那么取值up5%+,否则取值down5%+.

85220

R语言数据分析利器data.table包 —— 数据框结构处理精讲

版权声明:本文为博主原创文章,转载请注明出处     R语言data.table包是自带包data.frame升级版,用于数据框格式数据处理,最大特点快。...将一个R对象转化为data.table,R可以时矢量,列表,data.frame等,keep.rownames决定是否保留名或者列表名,默认FALSE,如果TRUE,将名存在"rn",keep.rownames...="id",名保存在"id"。...data.table为了加快速度,会直接在对象地址修改,因此如果需要就要在修改前copy,直接修改命令有:=添加一列,set系列命令比如下面提到setattr,setnames,setorder等;...链接符合表达式 DT[v>1, sum(y), by=v] #对v列进行分组后,取各组v>1出来,各组分别对定义y求和 DT[, .N, by=x] #用by对DT 用x分组后,取每个分组总行数

5.6K20

Matt Dowle 演讲节选(二)

这里关键在于,在第一种方法,每为新赋值,data.table就要重新复制一遍DT,也就是说,第一种方法运行过程,DF被复制了1000遍!...因为任何对列处理都必须导致数据集在内存复制,也即假如我们内存是 4G,那么在使用data.frame情况下,我们最大就只能处理 2G 数据集!...读一个50 MB csv 竟然要一分钟?果然 R 性能就是不行啊”。这时你们肯定会去 StackOverflow 上发帖询问,而得到回答大多数是让你指定read.csv参数。...现在我们再玩得大点,假设你有 20G csv 文件,2亿,16列,哪怕你为每个列都指定了class,read.csv("test.csv")也需要好几个小时才能运行完,而fread只要—— 8 分钟...Matt 用 StackOverflow (全球最大编程问答网站) 数据给出了答案: 在过去 7 天,有 21 条关于 data.table 问题没有被回答,占 19%; 在过去 30 天

1.1K40

R语言基因组数据分析可能会用到data.table函数整理

版权声明:本文为博主原创文章,转载请注明出处 R语言data.table包是自带包data.frame升级版,用于数据框格式数据处理,最大特点快。...因此,在对大数据处理上,使用data.table无疑具有极高效率。这里主要介绍在基因组数据分析可能会用到函数。...前面三个选项都是用新特定C代码写,较快; buffMB 每个核心给缓冲大小,在1到1024之间,默认80MB; nThread 用核心数; showProgress 在工作台显示进程...by ]语法做 但是如果我要将上述DTv3作为一个影响因素,作为tag,先按v1、v2汇总,再将对应v4值分为v3=1和v3=2两类,查看v1、v2取值相同v3不同对应v4情况,这个时候用dcast...by.y默认key(y); maxgap 设定两个区域空白区允许最大值,参数尚不能使用; minoverlap 设定两个区域最小重叠区,参数尚不能使用; type

3.2K10

代码对日期插值

我们看到每个id对应date都是有缺失,例如从2001-01-09直接跳到了2001-01-12,当中少了10号和11号。 如何只用一代码就高效优美地把这些缺失日期补上呢?...此时,我们相当于要构造出一个“平衡”面板数据。 解决思路是运用data.tablemerge功能。...我们看到CJ数据集中,每个id所对应时间都被填充完整了。 (在建立CJ数据集过程,我们使用了seq函数来建立完整时间序列) 接下来,我们把CJ数据集merge回原来数据集dt。...例如,在我们样例数据集sample,id=1观测对应日期最小值为01-08,最大值为01-14,而我们希望填充这两个日期“之间”所有值。...思路和情况1类似,我们先构造CJ数据集,只不过在这里我们seq函数起讫点不再是固定值,而是每个id对应日期最大值与最小值: # 建立完整日期序列 # 注意min和max函数作用 CJ <- dt

1.4K30

StarRocks学习-初识

查询时, 如果指定了维度列等值条件或者范围条件, 并且这些条件维度列可构成表维度列前缀, 则可以利用数据有序性, 使用range-scan快速锁定目标....加速数据处理 预先聚合:  StarRocks支持聚合模型, 维度列取值相同数据可合并一, 合并后数据维度列取值不变, 指标取值为这些数据聚合结果, 用户需要给指标列指定聚合函数.  ...查询时, 多台BE可并行地查找tablet快速获取数据. 此外, tablet副本可复制和迁移, 增强了数据可靠性, 避免了数据倾斜. 总之, 分区分桶保证了数据访问高效性和稳定性。...列级别的索引技术:  Bloomfilter可快速判断数据块不含所查找值, ZoneMap通过数据范围快速过滤待查找值, Bitmap索引可快速计算出枚举类型列满足一定条件。..., 查询时最大(最新)版本数据胜出。

2K30

R语言︱情感分析—基于监督算法R语言实现(二)

trainterm$logic <- rep(1, nrow(trainterm))# 添加辅助列 计算TF指标,是指计算每个文档,每个词频数,等于计数,这时需要添加一列数字1,来方便计数。...aggregate相当于把每个文档词去重了一下,不是ID去重,在不同文档也可能存在相同词。...这里使用`aggregate`统计每篇文章每个频次,2添加了一个辅助列logic,当然不添加辅助列,设置`aggregate`里FUN参数为`length`函数也能完成,但是数据量大时耗费时间太长...,用去重id来计算length,就是代码total, 每个文档数,就是每个词在所有文档数量,用table来计数,公式很多要素都跟DF值一样。...value.var给出是分类主要指标,这里只选择了tfidf一个指标。 如下图4,可知左边按id与label进行分类,右边是按每个单词,相当于变成了n*n个数据量,计算消耗非常

1.7K20

作者仅提供了fpkm格式表达量矩阵转录组测序数据集该如何重新分析呢

以下是一些常见格式: 计数矩阵(Count Matrix): 这是最基本格式,通常由比对到参考基因组读段生成。 每一代表一个基因或转录本,每一列代表一个样本。...单元格值表示该基因在该样本读段计数。 FPKM/FPKM-UQ(每千个碱基每百万片段比率/未量化FPKM): FPKM是标准化表达量指标,考虑了基因长度和测序深度。...FPKM-UQ是未量化FPKM,它没有经过标准化处理,通常用于避免引入人为表达量变化。 TPM(每千个转录本每百万片段比率): TPM是另一种标准化表达量指标,它考虑了样本总转录本数。...输出通常包括每个基因估计表达量(如FPKM)、表达量不确定性和统计评估。...,是 placentae from 9 patients with early-onset severe preeclampsia (EOSPE) and 32 normal controls, 同样方式获取

12110

SAS or R:谁更适合你?(二)

为什么说这两特征使得R语法产生优势了呢?...两 个例子 举特例子,现在大猫有全国每个GDP,然后大猫想比较下每个省和全国均值相差多少。...如果你使用了R/Data.Table,那么一代码就可以搞定: ▶ dt[, gdp_delta := gdp – means(gdp)] 另外一个SAS中常遇到问题是“Retain/Sort诅咒...: ▶ dt[, sum := cumsum(expense), by = id] 为了实现一个小小需求,大猫不得不多写8代码,在写这8代码过程,可能大猫就忘了当初是要做什么了。...注:Matt: data.table作者 下 期预告 下一期大猫会带领大家探索编程语言另一个重要指标:性能与并行运算,一定要继续follow哦! 我是大猫,咱们下一期见!

78920

比pandas更快

三个比pandas更快数据分析库 简要介绍以下三个能够快速运行Python库: 1.polars:一个使用Apache Arrow列格式内存模型在Rust编程语言中实现快速数据框架库。...2.datatable:与Rdata.table库密切相关。 3.modin:使用所有可用CPU核来运行pandas,基本上是pandas替代品。...在100万数据集和1000万数据集中执行测试中看到了类似的结果。 1.polars库在所有测试中都获胜,但apply函数除外,这里modin更快。...从对更大数据集测试,还可以看到,在大多数测试,polars性能始终优于所有其他库。其中一些亮点包括: 1.读取csv文件时比pandas快约17倍。...3.在其他测试,比pandas快2-3倍。 虽然没有测试这四个库每个方面,但所测试操作在数据分析工作中非常常见。

1.4K30

R Tricks: 如何巧为观测标记序号

取值只能是0和1, 表示一件事情是否发生。...现在问题是,我希望为每个连续0或者1编号。例如连续出现3个0, 那么n就标记为1、2、3,如果后面接了一个1, 那么就重新从1开始标记。也即最终结果应该是: ?...data.table包!...在R,求差分函数diff非常适合完成这个任务。它可以计算当前观测和上一观测相比变化了多少。我们试着用一下: ▶ dt[, diff := c(0, diff(group))] 结果如下: ?...还记得在开篇大猫说这个技巧在事件研究法特别实用吗?因为在事件研法,我们一般会给事件日标为1,非事件日标为0,对于每个事件之间一段时间,我们往往希望能够用1开始为其标号,这对于后续统计相当有用。

96610

好强一个Julia!CSV数据读取,性能最高多出R、Python 22倍

那么,测试结果又是如何呢?让我们来一起看下。 同构数据集性能 首先从同构数据集开始进行性能测试。 性能指标是随着线程数从1增加到20而加载数据集所花费时间。...由于Pandas不支持多线程,因此报告所有数据均为单线程速度。 浮点型数据集 第一个数据集包含以1000k和20列排列浮点值。 ? Pandas需要232毫秒来加载此文件。...单线程CSV.jl是没有多线程Pandas(Python)1.5倍,而多线程CSV.jl可以达到11倍。 字符串数据集 I 此数据集在且具有1000k和20列,并且所有列不存在缺失值。 ?...单线程CSV.jl比data.table快2.5倍,而在10个线程,CSV.jl则大约比data.table快14倍。 字符串数据集 II 该数据集大小与字符串数据集 I 相同。...单线程,CSV.jl比R快2倍,而使用10个线程则快了10倍。 按揭贷款风险数据集 从Kaggle取得按揭贷款风险数据集是一种混合型数据集,具有356k和2190列。

2K63
领券