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

R练习50题 - 第一期

共同组成的“面板数据”在工作中几乎随处可见。...值得说明的有一下几点: 数据集为“面板数据”:包含多个股票(横截面),而每个股票则有多个按照日期排序的变量(时间序列) 股票代码symbol 和日期date共同组成了数据集的key,也即每个唯一的symbol...unique:找出symbol中不重复的值。 在data.table的语法中,先进行列选择操作,再对列进行处理。所以上述语句会先执行str_detect,再执行unique。...由于在keyby语句中我们已经按照日期与涨跌进行了分组,所以这一步我们只需要统计每个组有多少个股票就可以了。我们在这里使用了uniqueN这个函数。...整个代码的执行顺序是:先选择行(逗号空白行),再分组(keyby语句),最后进行组间统计(num语句)。 我们的答案中,行、列以及分组三条语句各占一行,实际上这仅仅是为了让代码更直观。

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

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

    将一个R对象转化为data.table,R可以时矢量,列表,data.frame等,keep.rownames决定是否保留行名或者列表名,默认FALSE,如果TRUE,将行名存在"rn"行中,keep.rownames...DT的属性,setattr(x,name,value) x时data.table,list或者data.frame,而name时属性名,value时属性值,setnames(x,old,new),设置x...,默认FALSE,如果TRUE,跳过空白行 key,设置key,用一个或多个列名,会传递给setkey showProgress,TRUE会显示脚本进程,R层次的C代码 data.table,TRUE...前面三个选项都是用新的特定C代码写的,较快 buffMB,每个核心给的缓冲大小,在1到1024之间,默认80MB nThread,用的核心数。..., by=x][order(x)] #和上面一样,采取data.table的链接符合表达式 DT[v>1, sum(y), by=v] #对v列进行分组后,取各组中v>1的行出来,各组分别对定义的行中的

    5.9K20

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

    因此,在对大数据处理上,使用data.table无疑具有极高的效率。这里主要介绍在基因组数据分析中可能会用到的函数。...不是用来重新编码的,而是允许处理的字符串在本机编码; quote 默认""",如果以双引开头,fread强有力的处理里面的引号,如果失败了就会用其它尝试,如果设置quote="",默认引号不可用...,默认Windows是"\r\n",其它的是"\n"; na,na 值的表示,默认""; dec 小数点的表示,默认"...前面三个选项都是用新的特定C代码写的,较快; buffMB 每个核心给的缓冲大小,在1到1024之间,默认80MB; nThread 用的核心数; showProgress 在工作台显示进程...by ]语法做 但是如果我要将上述DT中的v3作为一个影响因素,作为tag,先按v1、v2汇总,再将对应的v4值分为v3=1和v3=2两类,查看v1、v2取值相同v3不同对应v4的情况,这个时候用dcast

    3.4K10

    「R」数据操作(三):高效的data.table

    接「R」数据操作(一)和「R」数据操作(二) 使用data.table包操作数据 data.table包提供了一个加强版的data.frame,它运行效率极高,而且能够处理适合内存的大数据集,它使用[]...对数据进行分组汇总 by是data.table中另一个重要参数(即方括号内的第3个参数),它可以将数据按照by值进行分组,并对分组计算第2个参数。...data.table中,by所对应的组合中的值是唯一的,虽然实现了目标,但结果中没有设置键: key(type_class_test0) #> NULL 这种情况下,我们可以使用keyby来确保结果的data.table...然后在每个子集data.table的语义中计算j表达式。...,而是使用market_data[, (columns) := list(...)]来动态设定列,其中columns是一个包含列名的字符向量,list(...)是每个列对应的值: price_cols

    6.4K20

    一行代码对日期插值

    在分析时,我们为了获得完整的时间序列就需要“插入”那些丢失的日期。 举一个例子: ? 这个数据集中有5行观测,2组分类(id等于1和2)。...此时,我们相当于要构造出一个“平衡的”面板数据。 解决思路是运用data.table包的merge功能。...情 况2:每个group起讫时间不等 另一种情况是每个group的起讫时间不等。...例如,在我们的样例数据集sample中,id=1的观测对应的日期最小值的为01-08,最大值为01-14,而我们希望填充这两个日期“之间”的所有值。...处女座无数次为了给数据集取一个合适的名字心力交瘁…… 下 期预告 根据官网公告,Microsoft R Open 3.4版本将会“coming soon in May”,大猫会在第一时间给大家发布号外~

    1.4K30

    MR应知应会:MungeSumstats包

    该软件包还使用户能够灵活地将重新格式化的文件导出为制表符分隔的 VCF 或 R 本机对象,例如 data.table、GRanges 或 VRanges 对象。...要从 P 设置为 TRUE 覆盖并计算新的 Z 分数列。 compute_n 是否插补 N。默认值 0 不会插补,任何其他整数将被插补为数据集中每个 SNP 的 N(样本大小)。...Sum 和整数值在输出中创建 N 列,而 Giant、metal 或 ldsc 创建 Neff 或有效样本大小。如果传递多个,则会指示用于推导它的公式。...strand_ambig_filter 应删除具有链模糊等位基因的 SNP。默认为FALSE。 allele_flip_check 是否应根据参考基因组检查等位基因列以推断是否需要翻转。...对于翻转值,这表示等位基因是否根据 MungeSumstats 从输入列标题中选择的 A1、A2 进行切换,因此可能与创建者的意图不符。请注意,这些列将出现在返回的格式化摘要统计信息中。

    2.5K11

    【CV中的注意力机制】史上最强ResNet变体--ResNeSt

    2 特征图组(Feature-map Group) 与 ResNeXt 块一样,输入的特征图可以根据通道维数被分为几组,特征图组的数量由一个基数超参数 K 给出,得到的特征图组被称为基数组(cardinal...研究者引入了一个新的底数超参数 R,该参数规定了基数组的 split 数量。 然后将块输入 X 根据通道维数 X = {X1, X2, ...XG} 分为 G = KR 个组。...在每个单独的组中应用不同的变换 {F_1, F_2, ...F_G},则每个组的中间表征为 Ui = Fi(Xi), i ∈ {1, 2, ...G}。...3 基数组中的 Split Attention 根据 [30,38],每个基数组的组合表征可以通过跨多个 split 的元素求和融合来获得。第 k 个基数组的表征为: ?...R > 1时,每个subgroup中超过1个tensor,不妨设为x、y列向量,权重就是a、b,a * x + b * y,其中a、b都是列向量,同一行的两个scalar之和为1,因此在上面第2步最终输出

    3.8K30

    5个例子比较Python Pandas 和R data.table

    Python和R是数据科学生态系统中的两种主要语言。它们都提供了丰富的功能选择并且能够加速和改进数据科学工作流程。...在这篇文章中,我们将比较Pandas 和data.table,这两个库是Python和R最长用的数据分析包。我们不会说那个一个更好,我们这里的重点是演示这两个库如何为数据处理提供高效和灵活的方法。...另一方面,data.table仅使用列名就足够了。 示例3 在数据分析中使用的一个非常常见的函数是groupby函数。它允许基于一些数值度量比较分类变量中的不同值。...对于data.table,此操作相对简单一些,因为我们只需要使用by参数即可。 示例4 让我们进一步讨论前面的例子。我们求出了房屋的平均价格,但不知道每个地区的房屋数量。...data.table中使用减号获得降序结果。 示例5 在最后一个示例中,我们将看到如何更改列名。例如,我们可以更改类型和距离列的名称。

    3.1K30

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

    data.table中,还有一个比较特立独行的函数: 使用:=引用来添加或更新一列(参考:R语言data.table速查手册) DT[, c("V1","V2") := list(round(exp(V1...在筛选列变量的数据,也可以与%in%集合运算联用(集合运算见博客:R语言︱集合运算)。...setkey(try,gender,buy_online) #设置key为两个变量,数据已经按照x值进行了重新排序 ans2 <- DT[list("M","Y")] #更为简洁,并且迅速...—————————————————————— 实战一:在data.table如何选中列,如何循环提取、操作data.table中的列?...除了行,就是列的问题了。在data.table操作列,真的是费劲。。。 常规来看, data[,.

    9.3K43

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

    R语言︱数据集分组 大型数据集通常是高度结构化的,结构使得我们可以按不同的方式分组,有时候我们需要关注单个组的数据片断,有时需要聚合不同组内的信息,并相互比较。...:对每个小片断独立进行操作; combine:把片断重新组合。...可以看到,计算结果中的第一列实际上是“SELLERID.CLIENT”,我们需要把它拆分成两列并调换顺序才行。...(iris$setosa)] #按照照setosa的大小,重排Sepal.Length数据列 四、dplyr与data.table data.table可是比dplyr以及python中的...data.table包的语法简洁,并且只需一行代码就可以完成很多事情。进一步地,data.table在某些情况下执行效率更高。

    20.9K32

    kylin简单优化cube

    但是对于某些维度组,不需要创建这么多组合。例如,如果您有三个维度:洲,国家,城市(在层次结构中,“更大”维度首先出现)。...” 性能优化 分区列优化     如果cube的分区列与Hive表的分区列相同,那么根据它过滤数据能让Hive聪明地跳过不匹配的分区。...如果你的cube指定了一个高基数的列,比如”USER_ID”,作为”分片”维度(在cube的“高级设置”页面),Kylin会让Hive根据该列的值重新分发数据,那么在该列有着相同值的行将被分发到同一个文件...另一方面将基数小的列放在rowkey的后面,可以减少构建的重复计算,有些cuboid可以通过一个以上的父cuboid聚合而成,在这种情况下,Kylin将会选择最小的父cuboid。...将经常出现在同一SQL中的不同维度放置在一个维度组中,将从不出现在一个SQL查询中的不同维度设置在不同的维度组中。

    73720

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

    R语言作为专业的统计计算语言,数据处理是其一大特色功能,事实上每一个处理任务在R语言中都有着不止一套解决方案(这通常也是初学者在入门R语言时,感觉内容太多无从下手的原因),当然这些不同方案确实存在着性能和效率的绝大差异...data.table 1、I/O性能: data.table的被推崇的重要原因就是他的IO吞吐性能在R语言诸多包中首屈一指,这里以一个1.6G多的2015年纽约自行车出行数据集为例来检验其性能到底如何,...DT[i,j,by] 如果这个过程是SQL中是由select …… from …… where …… groupby …… having 来完成的,在R的其他基础包中起码也是分批次完成的。...当整列和聚合的单值同时输出时,可以支持自动补齐操作。 当聚合函数与data.table中的分组参数一起使用时,data.table的真正威力才逐渐显露。 mydata[,....以上语法加入了新的参数.SDcols和.SD,咋一看摸不着头脑,其实是在按照carrier,origin,dest三个维度分组的基础上,对每个子块特定列进行均值运算。

    3.6K80

    GEO—芯片GSE3292 _pd 中无法找到分组信息—火山图中添加目标基因

    可以看到这个数据集pd中是不包含分组信息(HPV阳性和阴性)的。在网页中找到分组信息,如下。可以看到分组信息对应的ID号是pd表格中title列中内容的后面的数字。...所以我们要额外处理pd表格把对应的分组信息加到对应的GSM数据集后。我采用的方法是直接复制上表内容,形成sup.tsv,然后读取到R中,按照ID值从小到大排列。...可以看到现在sup.tsv和pd的行顺序是一致了,然后直接将sup.tsv的HPV列加到pd中即可。...值得注意的是原始pd的行顺序是不能改变的(上一步#(3)让exp列名与pd的行名顺序完全一致),因此我们要提前设置变量记录原始的pd行顺序,pd加完HPV列后,还需要按照这个变量重新排列,恢复原始顺序。...,应该用ggrepel这个包,在绘图代码中添加geom_text_repel参数;色号的确定,可是直接使用ishot截图工具,指针指向哪里,就会显示哪里的色号;如何在图中添加p值阈值的水平线,和logFC

    9010

    Matt Dowle 演讲节选(二)

    上期回顾 上次讲到 Matt 在转移到 R 阵营之后,开始思考下面那个无法在 S-PLUS 上面实现的命令,能否在 R 中实现呢?...:把变量v1从第1行到第1000行的值分别设置为1至1000。...这里的关键在于,在第一种方法中,每为新的一行赋值,data.table就要重新复制一遍DT,也就是说,第一种方法的运行过程中,DF被复制了1000遍!...(大猫:在最新版本的 R 中,这个问题已经明显缓解,但是这时已经过去了5年多)而在data.table中,一切都是那么自然: > DF[, colToDelete := NULL] 哪怕你的数据集有...现在我们再玩得大点,假设你有 20G 的 csv 文件,2亿行,16列,哪怕你为每个列都指定了class,read.csv("test.csv")也需要好几个小时才能运行完,而fread只要—— 8 分钟

    1.1K40

    Learn R 函数和R包

    > plot(iris[,1],col = iris[,5]) #按照第五列给每个点分配颜色 > plot(iris[,2],col = iris[,5]) > plot(iris[,3],col =....csv的默认格式是表格; #2.记事本也可以打开; #3.sublime(适用大文件)打开 #4.R语言读取 #表格文件读到R语言中,就得到了一个数据框,对数据框进行的修改不会同步到表格文件,需重新导出...save(test,file="Rdata/xxx.Rdata") #当前在一个文件夹中想要调用另一个文件夹的Rdata #方法一 复制路径下载 getwd() [1] "/Users/zhuo...#参考基因组注释文件 读取文件格式 #### 1.base包 >read.tabel() >read.csv() >read.delim() #替代read.table() 默认参数sep=/t ,不用在重新输入...::fread("soft.txt",data.table = F)#读取很智能,不会导致窜列 #### 4.rio包 可以读取任何形式,但有问题的文件仍有问题,根据文件的后缀读取,特殊 >import

    1.4K00

    GWAS计算BLUE值2--LMM计算BLUE值

    GWAS计算BLUE值2--LMM计算BLUE值 #2021.12.12 本节,介绍如何使用R语言的lme4包拟合混合线性模型,计算最佳线性无偏估计(blue) 1....Springer International Publishing, 2017.❞ 该数据有62个重组自交系(RIL),在4个地点进行试验,随机区组,每个地点2个重复,每个小区种植20株,随机选择5株的表型平均值作为观测值...,predicted.value这一列就是blue值,两者结果一致。...95%的同学,在计算GWAS分析表型值计算时,都是用上面的模型计算出blue值,然后直接进行计算,其实还有更好的模型。...比如设置每个地点的残差异质,然后和残差同质的模型进行LRT检验,选择最优的模型。 比如设置每个地点与品种的互作的方差异质,比较方差同质的模型,选择最优的模型。 下节见。

    1.3K30

    128-R茶话会21-R读取及处理大数据

    前言 最近要处理一个100K*1M 左右大小的矩阵,这个矩阵的行为病人记录,列则是每个突变位点的突变信息,记录为0,1,2。 这个矩阵单纯大小就有300多G,我该如何去读取它、处理它呢?...毫无疑问的指向data.table 包中的fread。 它有两个优点: 效率飞速,自带多线程操作; data.table 格式很好地节约内存。 可是,300多G 对我来说还是有些大了。...而如snowfall 等并行处理的包,似乎无法处理readLines 这种文件链接,在我的测试中,每次并行循环都会重建链接,也就是若干个前N 行的文件。 1.2-将数据拆分 那么该如何来并行呢?...还记得[[125-R编程19-请珍惜R向量化操作的特性]] 吗? 我们将它们直接转型成对应矩阵就好,相当于重新创建了矩阵,接着将矩阵设计成和原矩阵相同的长宽属性。...:(13条消息) R语言的稀疏矩阵学习记录_徐洲更hoptop的博客-CSDN博客[2] 3-写成脚本分别投递 在[[98-R茶话会17-在后台执行R命令]] 我们提过用脚本执行R 命令。

    42320

    R语言基础

    准备工作安装R和Rstudio此处注意,如果电脑的用户名是中文,需要改成英文才能安装Rstudio查看用户名是中文还是英文:1.在开始菜单中找到控制面板2.在控制面板中找到“用户帐户”并进入,在“用户帐户...”中找到“管理本地用户和组”。...3.在“管理本地用户和组”中找到当前用户的用户名,就可以看到用户名是英文还是中文了下载R和Rstudiob站有教程,暂时不需要装R包什么是RR是一种编程语言,也可以统计计算、绘图,它汇集了很多函数RStudio...(左上窗口)在处理数据时,通常会编写一份脚本文件,即一组命令的集合来表示整个操作过程的逻辑流,该脚本文件可以直接读取并由R引擎执行。...5.文件窗口(files)(右下窗口)展示了当前文件夹中的文件列表。6.绘图窗口(plots)(右下窗口)用来展示R代码生成的图形。

    12210

    查询优化器概念:关于自动调整优化器及自适应查询优化

    但是,如果过滤的行很少,那么在散列连接中扫描正确的表是更好的选择。 下图显示了自适应过程。对于前面示例中的查询,默认计划的adaptive部分包含两个子计划,每个子计划使用不同的连接方法。...优化器根据连接左侧的基数自动确定每个连接方法何时是最优的。 统计信息收集器缓冲来自order_items表的足够行,以确定使用哪种连接方法。...在以下情况下,优化程序可以启用对共享SQL区域的统计信息反馈的监视: 表没有统计数据 表上有多个连接或析取过滤器谓词 包含复杂运算符的谓词,优化程序无法准确计算选择性估计值 在执行结束时,优化程序将其初始基数估计值与执行期间计划中每个操作返回的实际行数进行比较...2.2.2.2 重新优化:性能反馈 另一种形式的再优化是性能反馈。当PARALLEL_DEGREE_POLICY设置为ADAPTIVE时,这种重新优化有助于提高自动为重复SQL语句选择的并行度。...如果查询连接了在其连接列中具有数据倾斜的两个表,则SQL plan指令可以指示优化器使用动态统计信息来获得准确的基数估计值。 优化器收集查询表达式上的SQL计划指令,而不是语句级别上的SQL计划指令。

    1.6K10
    领券