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

在data.table apply()中为多个列组合rollapply()和weighted.mean()

在data.table中,apply()函数用于对数据表的每一行或每一列应用指定的函数。在apply()函数中,可以使用rollapply()函数和weighted.mean()函数来实现对多个列的组合操作。

  1. rollapply()函数:rollapply()函数用于在指定的窗口大小内对数据进行滚动操作。它可以在data.table中的多个列上进行滚动操作,并返回每个窗口的结果。
    • 概念:rollapply()函数是一个滚动操作函数,它可以在指定的窗口大小内对数据进行操作。
    • 分类:rollapply()函数属于数据处理函数。
    • 优势:rollapply()函数可以方便地对数据进行滚动操作,适用于处理时间序列数据或需要基于窗口进行计算的场景。
    • 应用场景:rollapply()函数适用于计算移动平均、滚动求和、滚动标准差等需要基于窗口进行计算的场景。
    • 推荐的腾讯云相关产品:腾讯云数据万象(COS)提供了强大的数据处理能力,可以与data.table结合使用,实现高效的数据处理和分析。详情请参考腾讯云数据万象产品介绍:腾讯云数据万象
  • weighted.mean()函数:weighted.mean()函数用于计算加权平均值。它可以在data.table中的多个列上进行加权平均操作,并返回结果。
    • 概念:weighted.mean()函数是一个加权平均函数,用于计算加权平均值。
    • 分类:weighted.mean()函数属于数据处理函数。
    • 优势:weighted.mean()函数可以方便地计算加权平均值,适用于需要考虑权重的场景。
    • 应用场景:weighted.mean()函数适用于计算加权平均成绩、加权平均价格等需要考虑权重的场景。
    • 推荐的腾讯云相关产品:腾讯云数据万象(COS)提供了强大的数据处理能力,可以与data.table结合使用,实现高效的数据处理和分析。详情请参考腾讯云数据万象产品介绍:腾讯云数据万象

综上所述,通过在data.table中使用apply()函数结合rollapply()函数和weighted.mean()函数,可以实现对多个列的组合操作,包括滚动操作和加权平均操作。腾讯云数据万象(COS)是一个推荐的腾讯云相关产品,可以提供强大的数据处理能力,与data.table结合使用,实现高效的数据处理和分析。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

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

合理选择一套自己的数据处理工具组合算是挺艰难的选择,因为这个涉及到使用习惯迁移成本的问题,比如你先熟知了R语言的基础绘图系统,没有强大的驱动力的情况下,你可能不太愿意画大把时间去研究ggplot2,...然后根据自己掌握的现状选择最熟练的一套,随着时间的推移慢慢发现现有工具组合的不足,开始尝试往更加高效、简介的工具迁移,这样以需求推动力的技能升级迁移更为彻底明确。...data.table 1、I/O性能: data.table的被推崇的重要原因就是他的IO吞吐性能在R语言诸多包首屈一指,这里以一个1.6G多的2015年纽约自行车出行数据集例来检验其性能到底如何,...注意以上新建时,如果只有一,列名比较自由,写成字符串或者变量都可以,但是新建多,必须严格按照左侧列名为字符串向量,右侧列表的模式,当然你也可以使用第二种写法。...当整列聚合的单值同时输出时,可以支持自动补齐操作。 当聚合函数与data.table的分组参数一起使用时,data.table的真正威力才逐渐显露。 mydata[,.

3.6K80

R数据框如何取交集

前面给大家介绍过了 ☞R批量预测miRNA靶基因之间的调控关系-ENCORI篇 ☞R批量预测miRNA靶基因之间的调控关系-TargetScan篇 有小伙伴拿自己的数据试了一下,反馈预测结果太多了。...你可以查询miRNA靶基因的时候限定使用哪些预测软件(如下图红圈所示),这样得到的结果就是多个预测软件预测结果的交集。...我们知道一般R里,对向量取交集,直接用intersect函数就可以了。...下面给大家介绍三种对R数据框取交集的方法 方法一、我们将各的信息合并成一个字符串,然后取交集 #将各的信息用_连接起来 combine1=apply(df1,1,function(x) paste...(x,collapse = "_")) combine2=apply(df2,1,function(x) paste(x,collapse = "_")) #查看合并后的字符串向量1字符串向量2的交集

1.7K20

data.table包使用应该注意的一些细节

因此对于不是非常巨大的文件,建议设置1,不要使用全部核心 freadsep是自动检测的   所以循环读入文件的过程,就算不同文件的分隔符不同,也可以循环一次性方便的读入; 还有就算后续改变了文件的分隔符...  as.matrix作用于data.table时会调用as.matrix.data.table,有一个rownames参数可以指定保留行名的 矩阵转换成data.table时可以保留列名   ...as.data.table函数同样有一个rownames参数,设置T可以将行名保留下来作为data.table的一 不建议setfor循环一起使用   虽然set可以在内存上直接改变数值,但在R...中用for循环比批量运算慢的多,因此首选:=或者apply处理浮点数时会有一些准确性的问题   比如用seq函数numeric类型的数值时,会存在不准确的问题,比如seq(0,1,by=0.2)...的0.6就不等于0.6, 虽然很费解,但这是因为计算机存储浮点数时出现的一些问题。

1.5K10

R练习50题 - 第一期

虽然具有明显的金融背景,但是它其他学科所遇到的数据集是相通的:我们的数据集中,每个股票代码symbol日期date的组合都决定了唯一的一个观测,相当于数据集的key,这种由“横截面”与“时间序列”...值得说明的有一下几点: 数据集“面板数据”:包含多个股票(横截面),而每个股票则有多个按照日期排序的变量(时间序列) 股票代码symbol 日期date共同组成了数据集的key,也即每个唯一的symbol...date组合决定了一个唯一的观测。...data.table的语法,先进行列选择操作,再对进行处理。所以上述语句会先执行str_detect,再执行unique。 练习2:每天上涨下跌的股票各有多少?...我们的答案,行、以及分组三条语句各占一行,实际上这仅仅是为了让代码更直观。

2.4K40

数据流编程教程:R语言与DataFrame

tidyr主要提供了一个类似Excel数据透视表(pivot table)的功能,提供gatherspread函数将数据长格式宽格式之间相互转化,应用在比如稀疏矩阵稠密矩阵之间的转化。...y 匹配的部分 anti_join(x, y): 所有 x y 不匹配的部分 (3)集合操作 intersect(x, y): x y 的交集(按行) union(x, y): x y...的并集(按行) setdiff(x, y): x y 的补集 (x不在y) 更多详细操作可以参考由SupStats翻译的 数据再加工速查表,比Python的老鼠书直观很多。...data.table还参考了NoSQL中流行的Key-Value形式,引入了setkey()函数,数据框设置关键字索引。...对比操作 对比data.table dplyr 的操作: 3. apply函数族 4. join 操作 5. 拼接操作 更多操作详情可查看data.table速查表。 八.

3.8K120

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

整洁是个广泛的概念,也包括重构数据,以便有利于数据分析建模。R语言运行几个长列比运行一些短快,所以一般认为宽数据(不整洁),长数据(整洁)。...用法是:gather(data,key,value,-religion),分别是数据框,要转换成分类的列名,单元值的列名清除收集的变量 使用seperate()分割联合变量 分割是指将一个实际由两个变量组成的变量分割成两个独立...滤除行 filter() ## 键操作 数据聚合 基于组合变量生成数据汇总,以前称为split-apply-combine。summarize是一个多面手,用于返回自定义范围的汇总统计值。...非标准计算 代码没有引号包裹的原始名字,这种方式叫做非标准计算(NSE),高效交互使用函数,减少键盘输入,允许Rstudio自动完成。还是函数名多个_。...这里建议不要把数据库密码API密钥等放在命令,而要放大.Renviron文件。dbConnect()函数连接数据库,dbSendQuery()查询,dbFetch()加载到R

1.9K20

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

/counts/counts.txt', header = T,data.table = F)#载入counts,第一设置列名 colnames(a1) counts <...primed fix(nlgl)编辑构建样品名分组信息 2. counts与TPM转换 基因表达量一般以TPM或FPKM单位来展示,所以还需要进行,若还想转化为FPKM或CPM可参见Counts...转换时经常会出现多个Ensembl_id对应一个gene symbol的情形,此时就出现了重复的gene symbol。此时就需要我们进行基因ID转换前去除重复的gene symbol。...geneid),"symbol"] #匹配counts行名对应的symbol table(duplicated(symbol)) #统计重复基因名 ###使用aggregate根据symbol的相同基因进行合并...counts矩阵 需要用到tximport包从salmon输出文件获取counts矩阵,tximport函数输入quant.sf文件路径、转换类型type = "salmon"、以及转录本与基因名

16.3K45

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

版权声明:本文博主原创文章,转载请注明出处     R语言data.table包是自带包data.frame的升级版,用于数据框格式数据的处理,最大的特点快。...showProgress,工作台显示进程,当用file==""时,自动忽略此参数 verbose,是否交互报告时间 data.table数据框结构处理语法 data.table[ i , j ,...比如此例取出DT X 列为"a"的行,"a"进行merge。on参数的第一必须是DT的第一 DT[....(sv=sum(v))] #对y求和,输出sv的内容就是sum(v) DT[, ...., by=x][order(x)] #上面一样,采取data.table的链接符合表达式 DT[v>1, sum(y), by=v] #对v进行分组后,取各组v>1的行出来,各组分别对定义的行

5.7K20

懒癌必备-dplyrdata.table让你的数据分析事半功倍

接下来,我就为大家分享几个我工作当中最常用来做数据分析用到的包,dplyrdata.table,我保证你get到这两个包后,就再也不想用R里面自带的基础包函数进行数据分析了!!...以外的所有 distinct( ) 去重 distinct(df,V1,V2) 根据V1V2两个条件来进行去重 基础包里面也有一个去重函数unique() ※注意distinct()可以针对某些进行去重...mutate( ) 数据增加新 mutate(df,vnew1=v1-v2,vnew2=vnew1+v3) 与基础包里的transform()函数接近,但mutate可以使用你刚刚创建的column...data.table把我们刚刚用group_bysummarise组合才能实现的功能,直接在一句代码里面就实现了,而且代码的可读性可扩展运用性非常强!...以上讲的这些只是我工作data.table用得最多的功能,它的强大之处还远远不止这些!如果你想深入,可以去官网下载文档,你绝对值得拥有!

2.4K70

Matt Dowle 演讲节选(一)

虽然不像 Hadley Wickham (请大家猛戳大猫上期的《Hadley Wickham 采访节选》)那样多产(Hadley目前已经CRAN上发布了40多个包了),但是 Matt 凭着自己的 data.table...截至2016年12月30日,data.table 是 StackOverflow上有关 R 的第三大 tag,下面一共4912个帖子,而 dplyr 4063。...实战data.table 获得了 Kaggle 排名第一的 Gilberto 的青睐,他的原话很直接—— data.table is COOL!!!...在这段21分33秒的演讲,Matt 回顾了自己伦敦大投行的工作经历(雷曼兄弟以及所罗门兄弟)、自己与 R 的偶遇以及开发 data.table 的动机。...后来我下载了 R,几乎没有任何改动的情况下把 S-PLUS 的代码粘贴了过去。代码的主要任务是生成许多随机资产组合,因此它包含一个很长的 for 循环。

63920

生信技能树 Day8 9 GEO数据挖掘 基因芯片数据

查找下载数据 以GSE7305例 网站点击链接下载 代码下载 #打破下载时间的限制,改前60秒,改后10w秒 options(timeout = 100000) options(scipen =...acc=GPL570 代码下载 #获取表格下载链接 get_gpl_txt(gpl_number) 如何读取表格并提取子集,以GPL28098例 #读取表格 a = data.table::fread...首先确认是不是基因表达芯片,可能是RNA芯片 然后看看别的,基因名称可能包含在里面。...singleDoc# 《一个有点难的探针注释》 包含在ENTREZ_GENE_ID library(tinyarray) find_anno("GPL30971") get_gpl_txt("GPL30971...") #网址复制到浏览器 下载到文件,放在工作目录下 f = data.table::fread("GPL30971.txt",data.table = F) colnames(f) ids = f[,

20720

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

前言 最近要处理一个100K*1M 左右大小的矩阵,这个矩阵的行为病人记录,则是每个突变位点的突变信息,记录0,1,2。 这个矩阵单纯大小就有300多G,我该如何去读取它、处理它呢?...毫无疑问的指向data.table的fread。 它有两个优点: 效率飞速,自带多线程操作; data.table 格式很好地节约内存。 可是,300多G 对我来说还是有些大了。...而如snowfall 等并行处理的包,似乎无法处理readLines 这种文件链接,我的测试,每次并行循环都会重建链接,也就是若干个前N 行的文件。 1.2-将数据拆分 那么该如何来并行呢?...使用apply?来点多线程,mapply? no,no,no。还记得[[125-R编程19-请珍惜R向量化操作的特性]] 吗?...我们将它们直接转型成对应矩阵就好,相当于重新创建了矩阵,接着将矩阵设计成原矩阵相同的长宽属性。

41020

能不能让R按行处理数据?

这些问题都是在平日的工作中有很高可能性出现并且看似容易实则让人抓狂的问题,Stackoverflow上他们有着很高的人气。事实上,这些问题也就是你“看懂一本R的教材”“成为R大神”之间的距离。...eddi大神的意思是,原来inti_total_assetissuing_scale是两个变量,现在要把他们stack起来,“堆成”一,也就是这样: ?...对,这个步骤castmelt函数的作用类似,只不过这里直接用了data.table自己的语句。...事实上,data.table也整合了reshape的castmelt函数,并且将cast函数升级dcast,感兴趣的小伙伴可以去研究一番。 在拉直数据后,接下来要做的工作就很简单了。...本 期总结 本期大猫带领大家学习了如何在R按照行进行处理。R的数据处理哲学是向量,是,但这并不妨碍我们按照行进行处理,其中的关键,就在于运用 c() 函数把不同的向量拼接成一个向量。

1.3K20

R语言:data.table语句批量生成变量

写在前面 本期依然由村长大家供稿,只为填上一期最后挖的坑,话不多说进入正题。 问题提出 在上一期,还记得我们留下的那个彩蛋吗?...我们在对多标准进行筛选时,之前我们还进行了一步非常重要的提取,也就是将每一观察值提取出某一特定的字段,而后生成一系列变量,这些变量的观测值只可能存在三种情况:醛固酮、继发性醛固酮或者NA。...在这里通过链接的推送的lapply使用原理,再加上stringr包str_match这个函数的使用,截取出诊断结果中出现过的继发性醛固酮或者醛固酮,没有出现过的自动记为NA。...str_c(colnames(clinic)[2:23], "_xtrct") 最后我们把 ':=' 左右两边的代码组合在一起,放入data.table语句的j中就是我们一开始所讲述的代码。...我们与大家分享我们的知识节操,我相信独乐乐不如众乐乐。

1.2K20

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

因此,在对大数据处理上,使用data.table无疑具有极高的效率。这里主要介绍基因组数据分析可能会用到的函数。...转换后 当然,上述过程也可以用data.table[ i , j , by ]语法做 但是如果我要将上述DT的v3作为一个影响因素,作为tag,先按v1、v2汇总,再将对应的v4值分为v3=1v3...index,默认(NULL)不产生,如果idcol=TRUE,行名自动.id,当然你也可以直接命名,比如idcol="id"; between 是data.table i 语法的扩展功能...可以设置any,within,start,endequal。equal尚不能使用。...默认nomatch=NA,无匹配返回NA,也可以设置0,0不返回该行; which 默认FALSE结果返回xy行的联合,当是TRUE时,如果mult=“all”,返回两,一

3.3K10
领券