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

组合"by“和"on”以连接并创建data.table的汇总列

组合"by"和"on"以连接并创建data.table的汇总列是通过使用data.table包中的byon参数来实现的。

在data.table中,by参数用于指定要按照哪些列进行分组,而on参数用于指定要连接的列。

首先,我们需要加载data.table包,并创建一个示例数据表:

代码语言:txt
复制
library(data.table)

# 创建示例数据表
dt1 <- data.table(ID = c(1, 2, 3, 4),
                  Value1 = c(10, 20, 30, 40))

dt2 <- data.table(ID = c(1, 2, 3, 4),
                  Value2 = c(100, 200, 300, 400))

接下来,我们可以使用byon参数来连接并创建汇总列:

代码语言:txt
复制
# 使用by和on连接并创建汇总列
dt3 <- dt1[dt2, on = "ID", Value2 := i.Value2]

在上面的代码中,我们使用on = "ID"指定了连接的列为"ID"列。然后,我们使用Value2 := i.Value2将dt2中的"Value2"列连接到dt1中,并创建了一个名为"Value2"的汇总列。

最后,我们可以查看结果:

代码语言:txt
复制
print(dt3)

输出结果如下:

代码语言:txt
复制
   ID Value1 Value2
1:  1     10    100
2:  2     20    200
3:  3     30    300
4:  4     40    400

以上是使用data.table包中的byon参数来连接并创建data.table的汇总列的方法。对于更多关于data.table的详细信息和用法,可以参考腾讯云的产品介绍链接地址:data.table - 高效的数据处理工具

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

相关·内容

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

对数据进行分组汇总 by是data.table中另一个重要参数(即方括号内第3个参数),它可以将数据按照by值进行分组,对分组计算第2个参数。...接下来,我们学习如何通过by简便方式实现数据分组汇总。...下面的例子中,首先使用通用键id将product_infoproduct_tests连接起来,然后筛选已发布产品,再按typeclass进行分组,最后计算每组qualitydurability...为演示,我们先创建data.table,命名为market_data,其中date是连续。...("volume") #> year average #> 1: 2015 4000 #> 2: 2016 4003 我们可以利用此包专门语法创造一个数动态变化组合,并且组合是由动态变化名称决定

6.3K20

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

用法是:gather(data,key,value,-religion),分别是数据框,要转换成分类列名,单元值列名清除收集变量 使用seperate()分割联合变量 分割是指将一个实际由两个变量组成变量分割成两个独立...滤除行 filter() ## 键操作 数据聚合 基于组合变量生成数据汇总,以前称为split-apply-combine。summarize是一个多面手,用于返回自定义范围汇总统计值。...RODBC是一个资深包,提供R与SQL server接口。DBI包提供了通用接口与驱动程序类集,如RSQLITE,是访问数据库统一框架,允许其他驱动程序模块包添加。...这里建议不要把数据库密码API密钥等放在命令中,而要放大.Renviron文件中。dbConnect()函数连接数据库,dbSendQuery()查询,dbFetch()加载到R中。...mongolite包可以连接MongoDB,MonetDB也可以。 数据库与dplyr 必须使用src_*()函数创建一个数据源。

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

    ",因子列名只有在他们需要时候才会被加上双引号,例如该部分包括分隔符,或者"\n"结尾一行,或者双引号它自己,如果FALSE,那么区域不会加上双引号,如果TRUE,就像写入CSV文件一样,除了数字...,其它都加上双引号; sep 之间分隔符; sep2 对于是list,写出去时list成员间sep2分隔,它们是处于一之内,然后内部再用字符分开; eol 行分隔符...代表无变量; fun.aggregate 是否在铸造之前汇总,应提供函数list(比如mean,sum或者c(sum,mean)),默认length; sep 铸造时候连接字符变量连接符...显示没有联合成功行列 value.var 填充值,默认会猜测 现在我需要取数据DTv1,v2两相同情况作为汇总一类,对它们v4值取平均,转换如下,...,y需要设置key,x并不需要设置key; by.x,by.y 用来计算重叠列名或者矢量,by.xby.y最后两都应该对应各自(x,y)startend区间,并且start

    3.4K10

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

    R语言︱数据集分组 大型数据集通常是高度结构化,结构使得我们可以按不同方式分组,有时候我们需要关注单个组数据片断,有时需要聚合不同组内信息,相互比较。...2.aggregate函数不能对分组后数据进行多种汇总计算,因此要用两句代码分别实现summax算法,最后再用cbind拼合。显然,上述代码在性能和易用性上存在不足。...:对每个小片断独立进行操作; combine:把片断重新组合。...可以看到,计算结果中第一实际上是“SELLERID.CLIENT”,我们需要把它拆分成两调换顺序才行。...(iris$setosa)] #按照照setosa大小,重排Sepal.Length数据 四、dplyr与data.table data.table可是比dplyr以及python中

    20.8K32

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

    合理选择一套自己数据处理工具组合算是挺艰难选择,因为这个涉及到使用习惯迁移成本问题,比如你先熟知了R语言基础绘图系统,在没有强大驱动力情况下,你可能不太愿意画大把时间去研究ggplot2,...然后根据自己掌握现状选择最熟练一套,随着时间推移慢慢发现现有工具组合不足,开始尝试往更加高效、简介工具迁移,这样需求为推动力技能升级迁移更为彻底明确。...data.table 1、I/O性能: data.table被推崇重要原因就是他IO吞吐性能在R语言诸多包中首屈一指,这里一个1.6G多2015年纽约自行车出行数据集为例来检验其性能到底如何,...data.table索引 索引与数据框相比操作体验差异比较大,data.table索引摒弃了data.frame时代向量化参数,而使用list参数进行列索引。...SD, mean)则将各个子块对应列应用于均值运算,返回最终列表。

    3.6K80

    开发ETL为什么很多人用R不用Python

    做过建模小伙伴都知道,70%甚至80%工作都是在做数据清洗;又如,探索性数据分析中会涉及到各种转置、分类汇总、长宽表转换、连接等。因此,ETL效率在整个项目中起着举足轻重作用。...而日常数据生产中,有时会牵扯到模型计算,一般R、python为主,且1~100G左右数据是常态。基于此,于是想对比下R、Python中ETL效率。...可以看到,无论是5G还是50G数据,data.table性能都在python之上,堪比spark、clickhouse。...测试内容:对于id3, id4两分类汇总求v3中位数与标准差 data.table用时10.5秒 data[, ....(id4, id5)] modin用时174秒,由于modin暂不支持多groupby,实际上还是用pandasgroupby x.groupby([‘id4’,‘id5’]).agg({‘v3

    1.9K30

    【技巧】如何快速按照日期分组

    问题提出 在处理数据时候,我们常常需要按照日期对数据进行分类汇总,例如每周、每月、每年汇总等。常见做法是建立一个用于分类变量,然后再按照这个变量进行汇总。...然而这种做法特别麻烦,因为我们常常要尝试多种不同分类长度,很难事先就一次性创建好用于分类变量。...本期大猫将教大家使用 data.table keyby语句完成上述任务。...使用 data.table好处是: 不需要事先创建分类变量,啥时想分类了,直接分就可以(group on the fly) 速度特别、特别快! 代码非常、非常简洁!(也就十几个字符!)...按照“是否为周三”进行分类 如果我们想把样本分成两组,一组是周三(True),一组是非周三(False),则只要使用 wday(date)==3来生成一值为 True或者 False向量就行。

    2.5K30

    新书《R语言编程—基于tidyverse》信息汇总

    、“优雅” 方式,管道式、泛函式编程技术实现。...这些基本语法是您写 R 代码基本元素,学透它们非常重要,只有学透它们才能将其任意组合、恰当使用,写出各种各样解决具体问题 R 代码。...、R连接数据库、中文编码问题及解决办法),数据连接(数据按行/拼接、SQL数据库连接),数据重塑 (“脏”数据变“整洁”数据,长宽表转换、拆分与合并列),数据操作 (选择、筛选行、对行排序、修改、...分组汇总)、其它数据操作 (按行汇总、窗口函数、滑窗迭代、整洁计算),以及data.table基本使用 (常用数据操作dplyr语法与data.table语法对照)。...(4) 回归分析,从线性回归原理、回归诊断,借助具体实例讲解多元线性回归整个过程,介绍广泛应用于机器学习梯度下降法,以及广义线性模型原理。

    2.4K21

    MR应知应会:MungeSumstats包

    这只能作为最后手段。 force_new_z 当“Z”已经存在时,默认使用它。要从 P 设置为 TRUE 覆盖计算新 Z 分数列。 compute_n 是否插补 N。...Sum 整数值在输出中创建 N ,而 Giant、metal 或 ldsc 创建 Neff 或有效样本大小。如果传递多个,则会指示用于推导它公式。...对于翻转值,这表示等位基因是否根据 MungeSumstats 从输入列标题中选择 A1、A2 进行切换,因此可能与创建意图不符。请注意,这些将出现在返回格式化摘要统计信息中。...log_folder日志文件要存储 MungeSumstats 消息日志目录路径。默认是临时目录。如果存在同名格式化文件,则将跳过格式化导入该文件(默认)。设置为覆盖此设置。...但是,如果 youf 文件中标题丢失,我们提供映射不正确,您可以提供自己映射文件。必须是 2 数据框,列名称为“未更正”“已更正”。

    2.1K11

    「Workshop」第二期:程序控制与数据操作流

    涉及编程数据代码都会放到 https://github.com/XSLiuLab/Workshop 推荐图书 《R for Data Science》[1] 《R 语言编程指南》 《R 实战》 其他推荐见...select 排序 arrange 行列增加/更新 基本数学比较逻辑运算符 + - * / > < == 偏移 dplyr:: lag lead 聚合 dplyr:: cumall cumany...拓展表格 expand complete 分割连接 separate separate_rows unite 数据导出 write_* data.table 与 base 数据导入 fread 数据导出...fwrite data.table 语法 dt[i, j, by] 数据过滤与合并等操作与 R 基础语法一致,也可以使用 tidyverse 处理 整数索引 逻辑索引 命名索引 进一步学习参考小抄、...文档《R 语言编程指南》 后几期主题 本期未讲述内容???

    1.6K30

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

    (): 按变量选择 filter(): 按行名称分片 slice(): 按行索引分片 mutate(): 在原数据集最后一追加一些数据集 summarise(): 每组聚合为一个小数量汇总统计,通常结合...anti_join(x, y): 所有 x 在 y 中不匹配部分 (3)集合操作 intersect(x, y): x y 交集(按行) union(x, y): x y 集(按行)...数据可视化 ggplot2/ggvis 1. ggplot2 ggplot2 是一个增强数据可视化R包,帮助我们轻松创建令人惊叹多层图形。...值得一提data.table引入了全新索引形式,大大简化了data frame分片形式,提供接近于原生矩阵操作方式直接利用C语言构造底层,保证操作速度。 2....对比操作 对比data.table dplyr 操作: 3. apply函数族 4. join 操作 5. 拼接操作 更多操作详情可查看data.table速查表。 八.

    3.9K120

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

    接下来,我就为大家分享几个我在工作当中最常用来做数据分析用到包,dplyrdata.table,我保证你get到这两个包后,就再也不想用R里面自带基础包函数进行数据分析了!!...mutate( ) 为数据增加新 mutate(df,vnew1=v1-v2,vnew2=vnew1+v3) 与基础包里transform()函数接近,但mutate可以使用你刚刚创建column...找到合适packages学习使用它,绝对会让我们数据分析工作事半功倍! 我们有没有发现dylyr包中函数使用一些规律? 有的!...官网上面有关于data.table包对于dplyr提升改进: ?...data.table把我们刚刚用group_bysummarise组合才能实现功能,直接在一句代码里面就实现了,而且代码可读性可扩展运用性非常强!

    2.4K70

    「R」数据操作(八):dplyr do, do, do

    data.table类似,dplyr也提供了do()函数来对每组数据进行任意操作。 例如将diamonds按cut分组,每组都按log(price) ~ carat拟合一个线性模型。...data.table不同是,我们需要为操作指定一个名称,以便将结果存储在中。而且do()表达式不能直接在分组数据语义下计算 ,我们需要使用.来表示数据。...> 2 Good #> 3 Very Good #> 4 Premium #> 5 Ideal 注意结果创建了一个新...,该不是典型原子向量,每个元素都是模型结果,包含线性回归对象列表。...假如我们需要分析toy_tests数据,要对每种产品质量耐久性进行汇总。如果只需要样本数最多3个测试记录,并且每个产品质量耐久性是经样本数加权平均数,下面是做法。

    1.7K31

    R练习50题 - 第一期

    虽然具有明显金融背景,但是它其他学科所遇到数据集是相通:在我们数据集中,每个股票代码symbol日期date组合都决定了唯一一个观测,相当于数据集key,这种由“横截面”与“时间序列”...date组合决定了一个唯一观测。...unique:找出symbol中不重复值。 在data.table语法中,先进行列选择操作,再对进行处理。所以上述语句会先执行str_detect,再执行unique。...这是因为data.table第一个语句用来对进行选择,由于我们这里需要对所有进行统计,所以不需要进行任何操作。 keyby用来进行分组,是整个代码核心。先来看keyby = ....(date, updown)这个结构,他意思是,把整个数据集按照dateupdown两个变量进行分组,依次排序。

    2.5K40

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

    可见它是属于data.tabledata.frame类,并且取,维数,都可以采用data.frame方法。...,比as.data.table快,因为传地址方式直接修改原对象,没有拷贝 copy(x) 深度拷贝一个data.table,x即data.table对象。...sep2,对于是list,写出去时list成员间sep2分隔,它们是处于一之内,然后内部再用字符分开; eol,行分隔符,默认Windows是"\r\n",其它是"\n"; na,na...,仅仅对POSIXct有影响,as.character将digits.secs转化字符通过R内部UTC转回本地时间。..., by=x][order(x)] #上面一样,采取data.table链接符合表达式 DT[v>1, sum(y), by=v] #对v进行分组后,取各组中v>1行出来,各组分别对定义行中

    5.9K20

    「r」dplyr 里 join 与 base 里 merge 存在差异

    今天在使用连接操作时发现:虽然都是合并操作函数,dplyr 包里 *_join() 基础包里面的 merge() 存在差异,不同数据结构,结果也会存在偏差。...:前 2 个子集第 3 个子集是没有可以连接,第 4 个子集起到桥梁作用。...本质上是 data.table 体格泛型函数不支持类似基础包中操作。 如何编写代码支持对上述数据集连接操作?...一般工作情况下,不同数据子集都存在可以连接,所以无论上述哪种方法都可以胜任工作。...如果 be_join 不为空,进行如下循环: 如果存在,则将这个子集 to_join 按共同合并 如果不存在,使用循环位移一位,将当前 be_join 第 2 个子集移动为 第 1 个。

    1.6K30
    领券