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

R data.table:在一条语句中将data.table的条件摘要合并回原始data.table

R data.table是一个用于数据处理和分析的R语言包。它提供了一种高效的方式来处理大型数据集,并在一条语句中将data.table的条件摘要合并回原始data.table。

在使用data.table进行数据处理时,可以使用by参数来指定分组条件,然后使用j参数来指定需要进行的操作。当需要将条件摘要合并回原始data.table时,可以使用:=操作符来更新原始data.table的列。

下面是一个示例代码,演示了如何使用data.table将条件摘要合并回原始data.table:

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

# 创建一个示例data.table
dt <- data.table(
  id = c(1, 2, 3, 4, 5),
  category = c("A", "B", "A", "B", "A"),
  value = c(10, 20, 30, 40, 50)
)

# 使用data.table进行条件摘要并合并回原始data.table
dt[, summary := sum(value), by = category]

# 输出结果
print(dt)

上述代码中,首先创建了一个示例的data.table dt,包含了id、category和value三列。然后使用by = category指定了按照category列进行分组。接着使用:=操作符将sum(value)的结果赋值给了新的列summary。最后打印输出了更新后的data.table。

这样,我们就可以在一条语句中将data.table的条件摘要合并回原始data.table。

腾讯云提供了云计算相关的产品和服务,其中与数据处理和分析相关的产品包括云数据库 TencentDB、云数据仓库 Tencent Data Lake Analytics等。您可以访问腾讯云官网了解更多关于这些产品的详细信息和使用指南。

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

相关·内容

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

(ID)] 三种数据筛选方式,dplyr包、base基础包、data.table包。其中,dplyr是select语句data.table中要注意.()表达方式。...2、按条件行筛选 从前用subset方式进行筛选比较多, new=14,select=a:f) (1)单变量 现在data.table与dplyr from_dplyr =...筛选列变量数据,也可以与%in%集合运算联用(集合运算见博客:R语言︱集合运算)。...这里先设置key,然后直接通过list(M,Y)就可以达到第一条代码效能,而且时间更短。...参考文献: 些许案例,代码参考自以下博客,感谢你们辛勤: 1、R语言data.table简介 2、超高性能数据处理包data.table 3、R语言data.table速查手册 4、R高效数据处理包

7.6K43

data.table语句批量处理变量

问 题:批量处理表中变量 正式开始说问题之前,我们先回顾一下data.table基本语句DT[i, j, by],简而言之,"i"是对行进行选择,"j"是对列进行操作,"by"是分组。...:`除权除息日\r\n[报告期] 2010一季`,这是一个非常脏原始数据变量名,除了变量名是中文,需要用``符号进行引用以外,中间还有不知道什么时候会冒出来空格、换行符等等,笔者也是试了好几次才真正将变量名输入正确...批 量处理法:用lapply批量处理变量 在此时lapply妙用就显现出来了,R中lapply用来对list中每一个element进行相同处理,如何把它运用到data.table,话不多说先上代码:...我们知道data.table包中,.SD是经过i和by处理之后剩下那部分数据集,它格式是一个data.table,同时它是一个list。...下 期预告 下期大猫R语言课堂还是由村长来进行撰写和推送,届时将会给大家带来一个比较有趣data.table发现,敬请期待!! ?

1.1K30

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

接下来,我就为大家分享几个我工作当中最常用来做数据分析用到包,dplyr和data.table,我保证你get到这两个包后,就再也不想用R里面自带基础包函数进行数据分析了!!...GitHub上面,之前有人做了一个统计,以下几个函数最为常用: filter( ) 过滤 filter(df,cond1,cond2,…) 用逗号,隔开表示条件是and关系 filter(df,...①第一个参数都是数据集df ②查询条件都是关于如何操作数据集列上面进行操作 ③返回都是新数据集,不会改变原始数据集 介绍下一个包之前,我们先来引入一个dplyr包综合运用: grouped...作为课代表我来帮大家简单总结一下: 我们都知道R有个令人诟病缺点就是跑起来耗内存,data.table相对于dplyr 更快、更节省内存了!...(反正我用了data.table以后就再也不想用R里面基础包自带函数了,今天就黑到这里,匿了~) ——Copyright Reserved by Erin

2.4K70

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

R语言作为专业统计计算语言,数据处理是其一大特色功能,事实上每一个处理任务R语言中都有着不止一套解决方案(这通常也是初学者入门R语言时,感觉内容太多无从下手原因),当然这些不同方案确实存在着性能和效率绝大差异...合理选择一套自己数据处理工具组合算是挺艰难选择,因为这个涉及到使用习惯和迁移成本问题,比如你先熟知了R语言基础绘图系统,没有强大驱动力情况下,你可能不太愿意画大把时间去研究ggplot2,...data.table 1、I/O性能: data.table被推崇重要原因就是他IO吞吐性能在R语言诸多包中首屈一指,这里以一个1.6G多2015年纽约自行车出行数据集为例来检验其性能到底如何,...DT[i,j,by] 如果这个过程是SQL中是由select …… from …… where …… groupby …… having 来完成R其他基础包中起码也是分批次完成。...如果想要运行同时进行输出则可以结尾加上[] setorder(mydata,carrier,-arr_delay)[] ? 这个功能有点儿类似于基础函数中,语句外部加上圆括号。

3.6K80

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

Python和R是数据科学生态系统中两种主要语言。它们都提供了丰富功能选择并且能够加速和改进数据科学工作流程。...在这篇文章中,我们将比较Pandas 和data.table,这两个库是Python和R最长用数据分析包。我们不会说那个一个更好,我们这里重点是演示这两个库如何为数据处理提供高效和灵活方法。...示例2 对于第二个示例,我们通过应用几个过滤器创建原始数据集子集。这个子集包括价值超过100万美元,类型为h房子。...data.table中使用减号获得降序结果。 示例5 最后一个示例中,我们将看到如何更改列名。例如,我们可以更改类型和距离列名称。...inplace参数用于将结果保存在原始数据帧中。 对于data.table,我们使用setnames函数。它使用三个参数,分别是表名,要更改列名和新列名。

3K30

经验总结 | 最有效R学习路径(一)

写 在前面 小伙伴问大猫所有关于R问题中,“如何最快学R”应该是呼声最高的话题了。以前大猫曾经把自己经验总结成一篇万字长文发在人大经济论坛中,但是由于篇幅太长,很少有小伙伴有时间看完。...上讨论,data.table语法灵活性和performance上面更深一筹,dplyr则在易学性和SQL语句转换方面有独到之处。...大猫自己比较两者之后,选择了data.table。...如果听力不太好,建议去data.tablegithub上官网(github是世界上最大开源代码托管网站)阅读官方教程(链接后附)。...在这里大家会提出自己R编程中遇到问题,很多vote数比较高问题相当有代表性,小伙伴们完全可以拿来当练习题,思考自己答案,然后和下面网友给出答案进行对比。

1K20

一行代码搞定分组回归

写 在前面 目前为止所有小伙伴们向大猫请教过R问题中,大猫总结了最常遇见同时也是比较难三个问题,分别是(1)事件研究法;(2)分组回归;(3)滚动回归。...事件研究法第一期中已经讲述,本期我们就来瞧瞧如何做分组回归~ PS:由于微信限制,给大猫留言小伙伴超过48小时后大猫就不能回复你们了。所以如果想联系大猫,可以按照文章最后微信号加大猫微信哦。...keyby语句data.table包中分组语句,它能够对keyby中每一个不同值(这里为abcde)都分别跑一次回归。...具体而言,如果此时keyby语句循环到'a',那么.SD就表示原数据集中所有stkid == 'a'行。在这里,.SD用来作为回归函数lm输入数据集。 coef函数用来提取回归系数。...其中原理是,data.table最终输出必须是一个class为list元素,符合条件除了list自己,还包括 data.frame,data.table等。

3.4K40

R练习50题 - 第一期

本练习题来源于Renkun (github.com/renkun-ken/r-data-practice) Github上共享,我们认为它包括了绝大多数实践中会遇到问题,特别具有代表性。...unique:找出symbol中不重复值。 data.table语法中,先进行列选择操作,再对列进行处理。所以上述语句会先执行str_detect,再执行unique。...这是因为data.table第一个语句用来对列进行选择,由于我们这里需要对所有列进行统计,所以不需要进行任何操作。 keyby用来进行分组,是整个代码核心。先来看keyby = ....由于keyby语句中我们已经按照日期与涨跌进行了分组,所以这一步我们只需要统计每个组有多少个股票就可以了。我们在这里使用了uniqueN这个函数。...如果你愿意,data.table允许你把所有的代码都写在同一行,就像这样: 下期预告 在下一期,我们会继续带来剩余题目的解答~ 大猫R语言课堂 我是大猫,一个高中读文科但却在代码、数学路上狂奔不止

2.4K40

一行代码对日期插值

分析时,我们为了获得完整时间序列就需要“插入”那些丢失日期。 举一个例子: ? 这个数据集中有5行观测,2组分类(id等于1和2)。...此时,我们相当于要构造出一个“平衡”面板数据。 解决思路是运用data.tablemerge功能。...merge过程中,我们指定id和date变量必须匹配,也即on = .(id, date)语句作用: # 把CJ函数merge回原始数据集 dt[CJ, on = ....我们看到,原数据集存在观测那些日期,val值都被保留,而被插入那些日期,val是NA。当然,我们可以修改上一条语句nomatch参数把填充指改成任意值,例如0。...处女座无数次为了给数据集取一个合适名字心力交瘁…… 下 期预告 根据官网公告,Microsoft R Open 3.4版本将会“coming soon in May”,大猫会在第一时间给大家发布号外~

1.4K30

有些包卸载了就回不去了

最近接收到粉丝求助,说她安装一个包data.table失败了,提示她Rdata.table依赖于最新4.0以上,所以被迫升级了R,结果仍然是搞不定它,又降级为3.6,折腾了三天三夜,仍然是折戟沉沙包...data.table上面。...我觉得她故事非常典型,值得分享,很多人缺乏“透过现象看本质”能力,总是会被各种各样R报错表面信息给误导。 我们首先回顾一下她遇到报错: ?...(PS:起初没有意识到她安装一个data.table代码如此复杂,肯定是中间经历了各种各样搜索,被带歪了) 初步怀疑是默认安装data.table包版本太高了,所以找到旧版本R包给她,但是接下来报错更诡异...也就是说,接下来我自己data.table包也被搞坏了,真是尴尬啊。而且,我终于想通了为什么粉丝会误以为她自己R需要升级到4.0了,因为报错里面的确有一个警告,说这个包是4.0条件下创造

57130

Matt Dowle 演讲节选(一)

data.table 也是 github 中第八大受关注 R 开源项目。此外,data.table是目前 RStudio CRAN 镜像中下载最多包。...实战中,data.table 获得了 Kaggle 排名第一 Gilberto 青睐,他原话很直接—— data.table is COOL!!!...在这段21分33秒演讲中,Matt 回顾了自己伦敦大投行工作经历(雷曼兄弟以及所罗门兄弟)、自己与 R 偶遇以及开发 data.table 动机。...所以说,你不需要像在 SQL 里先用 CREATE TABLE 语句建立一个表然后再用 INSERT 语句插入数据咯? Pat:没错,现在你可以一步搞定。 Matt:Show me more!...更重要是,我有了那么多第三方开源包。 也是在那时,三年前那个想法再次冒了出来:我能够让下面的代码 R 中运行吗?

63320

关于data.table中i, j, by都为数字理解

往期公众号文章,都提到了data.table主要语句DT[i, j, by], 简而言之,i 用来选择或者排序,by 用来分组,j 用来运用函数进行处理。...以mtcars这个R自带数据集为例,我们知道mtcars[1]运行结果,是选择这个数据集第一行,结果如下: ? mtcars[1,1]运行结果,是选择第一行第一列元素,结果如下: ?...首先,我们单独看i只有一个1情况下是什么运行结果,为了让运行出来代码被认定是data.table格式,我们j中加入.SD(不清楚.SD用途小伙伴可以查看data.tablemanual,或者查看笔者上一篇推送用...data.table语句批量处理变量),代码如下: mtcars[1, .SD] 运行结果如下: ?...结 果分析 从这样一段拆解当中,我们大致就可以明白为什么会出现这样结果了,整体运行思路就是:首先选出了第一行,而后by中以一个变量名默认为NA变量为基准,最后j中生成了一个默认变量名为V1变量

1.2K30

R语言tryCatch使用方法:判断Warning和Error

我一直把R语言当作科学计算语言,没有当成编程语言,伪程序员气质从没有用过tryCatch表现出来了。当然,我不会说这是我问题,我会甩锅,都是R语言锅,它根本不是编程语言……。...❞ ❝吐槽完毕,我还是要从编程角度学习R语言,正所谓脑子一堆粪,看什么都是粪说就是我啊,一直把R语言当做高级计算器,怎么能知道R语言编程功能呢!。...首先看一下R中warning报警信息: 「warning」 # 示例数据 library(data.table) dd = data.frame(ID = 1:10,y= rnorm(10)) dd...「warning处理代码」 代码中,写下warning语句warning条件下,返回2 代码中,写下error语句error条件下,返回3 re1 = tryCatch({ dcast...「看示例:」melt这个函数,运行melt(dd,y~.)会报错,同时,因为这个函数data.table用法有变化,因此,也会给出warning信息。

82220

R语言tryCatch使用方法:判断Warning和Error

我一直把R语言当作科学计算语言,没有当成编程语言,伪程序员气质从没有用过tryCatch表现出来了。当然,我不会说这是我问题,我会甩锅,都是R语言锅,它根本不是编程语言……。...吐槽完毕,我还是要从编程角度学习R语言,正所谓脑子一堆粪,看什么都是粪说就是我啊,一直把R语言当做高级计算器,怎么能知道R语言编程功能呢!。...首先看一下R中warning报警信息: warning # 示例数据 library(data.table) dd = data.frame(ID = 1:10,y= rnorm(10)) dd #...warning处理代码 代码中,写下warning语句warning条件下,返回2 代码中,写下error语句error条件下,返回3 re1 = tryCatch({ dcast...看示例: melt这个函数,运行melt(dd,y~.)会报错,同时,因为这个函数data.table用法有变化,因此,也会给出warning信息。

6.1K72

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

毫无疑问指向data.table 包中fread。 它有两个优点: 效率飞速,自带多线程操作; data.table 格式很好地节约内存。 可是,300多G 对我来说还是有些大了。...通过设置循环,每次固定读取一定行数文件,并设置循环退出条件为读取结果为零即可: while( TRUE ){ # read genotype tmp <- readLines(genotype.file...genotype <- matrix(as.numeric(genotype), ncol = ncol(genotype)) 很显然,大部分记录值都是0,因为纯野生型占多数,而这样稀疏矩阵,R...:(13条消息) R语言稀疏矩阵学习记录_徐洲更hoptop博客-CSDN博客[2] 3-写成脚本分别投递 [[98-R茶话会17-在后台执行R命令]] 我们提过用脚本执行R 命令。...R[4] 不难发现,data.table::fwrite 又快又省空间。

40220

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

其中最亮眼是,RDataFrame和数据库之前可以以整个数据框插入形式插入数据而不需要再拼接SQL语句。 以下是一个官方文档示例: 三....数据建模 broom 1. broom 机器学习本质其实就是各种姿势回归,而在R各种回归分析往往不会返回一个整齐data frame 结果。...对比操作 对比data.table 和 dplyr 操作: 3. apply函数族 4. join 操作 5. 拼接操作 更多操作详情可查看data.table速查表。 八....R中使用DDF,我们不需要修改之前任何代码,并且绕过Hadoop绝对限制,就可以让data frame格式数据,自动获得分布式处理能力!...DataFrameR、Python和Spark三者中联系 参考资料 1.Medium:6 Differences Between Pandas And Spark DataFrames 2.Quora

3.8K120

R练习50题 - 第二期

等不及想先睹为快同学,请猛戳这里: “ github.com/Ravin515/r-data-practice ” 另外,感谢frankzhangyd同学Github上提建议! ?...keyby语句中,我们创建了三个分组变量,首先是日期date,其次是交易所exchange(只取SH/SZ两个值),最后是涨跌updown。注意这三个变量先后顺序非常重要,不能颠倒。...练习 4 沪深300成分股中,每天上涨、下跌股票各有多少? 分析: 本题仍旧是Ex-2拓展,只不过要求我们进行行选择操作。data.tabledt[i,j,by]语法中,i代表行选择操作。...data.table只会选择为True那些元素。 data.tabledt[i, j, by]语法中,先执行行选择操作i, 再执行分组操作by, 最后执行列操作j。...ifelse(ret > 0.05, "up5%+", "down5%+")意思是,如果条件(ret > 0.05)成立,那么取值up5%+,否则取值down5%+.

85520
领券