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

如何在给定特定行顺序的情况下在R data.table中对行进行重新排序

在R data.table中,可以使用setorder()函数对行进行重新排序。setorder()函数可以按照指定的列顺序对data.table进行排序,同时也可以指定升序或降序。

以下是在给定特定行顺序的情况下在R data.table中对行进行重新排序的步骤:

  1. 首先,确保已经安装并加载了data.table包。如果没有安装,可以使用以下命令进行安装:
代码语言:txt
复制
install.packages("data.table")

加载data.table包:

代码语言:txt
复制
library(data.table)
  1. 创建一个data.table对象,例如:
代码语言:txt
复制
dt <- data.table(ID = c(1, 2, 3, 4, 5),
                 Name = c("John", "Alice", "Bob", "Emma", "David"),
                 Age = c(25, 30, 35, 40, 45))
  1. 定义特定行的顺序。例如,如果要按照ID列的升序对行进行排序,可以使用以下代码:
代码语言:txt
复制
order_rows <- c(2, 5, 1, 4, 3)
  1. 使用setorder()函数对data.table进行重新排序。在setorder()函数中,将data.table对象作为第一个参数,指定要排序的列和顺序作为后续参数。例如,按照ID列的顺序对data.table进行排序:
代码语言:txt
复制
setorder(dt, ID)
  1. 最后,使用setorder()函数对特定行进行重新排序。在setorder()函数中,将data.table对象作为第一个参数,指定要排序的列和顺序作为后续参数。例如,按照order_rows中定义的顺序对data.table进行排序:
代码语言:txt
复制
setorder(dt, ID, order_rows)

完成以上步骤后,data.table将按照指定的行顺序进行重新排序。

请注意,以上答案中没有提及任何特定的腾讯云产品或链接地址,因为在这个特定问题中没有与腾讯云相关的内容。

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

相关·内容

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

data.table语法简洁,并且只需一代码就可以完成很多事情。进一步地,data.table某些情况下执行效率更高。...key变量重新排序。...setkey(try,gender,buy_online) #设置key为两个变量,数据已经按照x值进行重新排序 ans2 <- DT[list("M","Y")] #更为简洁,并且迅速...—————————————————————————————————————————————— 六、额外参数(来源:R语言data.table速查手册) 1、mult参数 mult参数是用来控制i匹配到哪一返回结果默认情况下会返回该分组所有元素...—————————————————————— 实战一:data.table如何选中列,如何循环提取、操作data.table列?

8.6K43

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

将一个R对象转化为data.tableR可以时矢量,列表,data.frame等,keep.rownames决定是否保留名或者列表名,默认FALSE,如果TRUE,将名存在"rn",keep.rownames...列名,old是旧列名或者数字位置,new是新列名 setcolorder(x,neworder) 重新安排列顺序,neworder字符矢量或者行数 set(DT,rownum,colnum,value...比如此例取出DT X 列为"a",和"a"进行merge。on参数第一列必须是DT第一列 DT[....(sum(y)), by=x] # x列进行分组后各分组y列求总和 DT[, sum(y), keyby=x] #x列进行分组后各分组y列求和,并且结果按照x排序 DT[, sum(y)..., by=x][order(x)] #和上面一样,采取data.table链接符合表达式 DT[v>1, sum(y), by=v] #v列进行分组后,取各组v>1出来,各组分别对定义

5.9K20
  • Matt Dowle 演讲节选(二)

    例如代码DF[2:3, sum(B), by = group],其中i部分为2:3,表示选择;j部分为sum(B),表示进行运算;by部分对应by = group,表示按照变量group...这里关键在于,第一种方法,每为新赋值,data.table就要重新复制一遍DT,也就是说,第一种方法运行过程,DF被复制了1000遍!...而在第二种方法,由于采用了 assignment by reference,data.table仅对内存v1所地址进行修改,其他地方则不变!事实上,DF 第二种方法中一遍都没有被复制!...因为任何处理都必须导致数据集在内存复制,也即假如我们内存是 4G,那么使用data.frame情况下,我们最大就只能处理 2G 数据集!...在这个2012年(注意dplyr最早版本2016年!)帖子,一个用户需要处理以下数据集(这里只显示前6) ? 他想首先按照gene_id分组,然后分别计算特定变量极值和均值。

    1.1K40

    关于data.tablei, j, by都为数字理解

    往期公众号文章,都提到了data.table主要语句DT[i, j, by], 简而言之,i 用来选择或者排序,by 用来分组,j 用来运用函数进行处理。...看到这个结果大家是不是还有点一头雾水,下面就让笔者来这个结果进行分析讲解。...问 题解析 为了弄清楚这个问题,我们根据i, j, by运行顺序:“先i,再by,最后j”,将i, j, by拆解进行分析。...首先,我们单独看i只有一个1情况下是什么运行结果,为了让运行出来代码被认定是data.table格式,我们j中加入.SD(不清楚.SD用途小伙伴可以查看data.tablemanual,或者查看笔者上一篇推送用...可见,DTi输入一个数字和用一般提取符号`[`只输入一个数字结果完全一样,就是提取这个数据集中某一

    1.2K30

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

    合理选择一套自己数据处理工具组合算是挺艰难选择,因为这个涉及到使用习惯和迁移成本问题,比如你先熟知了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)[] ? 这个功能有点儿类似于基础函数语句外部加上圆括号。...以上语法加入了新参数.SDcols和.SD,咋一看摸不着头脑,其实是在按照carrier,origin,dest三个维度分组基础上,每个子块特定进行均值运算。

    3.6K80

    R练习50题 - 第一期

    unique:找出symbol不重复值。 data.table语法,先进行列选择操作,再进行处理。所以上述语句会先执行str_detect,再执行unique。...这是因为data.table第一个语句用来进行选择,由于我们这里需要对所有列进行统计,所以不需要进行任何操作。 keyby用来进行分组,是整个代码核心。先来看keyby = ....(date, updown)这个结构,他意思是,把整个数据集按照date和updown两个变量进行分组,并依次排序。...代码第二生成了一个新变量num。由于keyby语句中我们已经按照日期与涨跌进行了分组,所以这一步我们只需要统计每个组有多少个股票就可以了。我们在这里使用了uniqueN这个函数。...整个代码执行顺序是:先选择(逗号空白),再分组(keyby语句),最后进行组间统计(num语句)。 我们答案、列以及分组三条语句各占一,实际上这仅仅是为了让代码更直观。

    2.5K40

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

    N是最常用符号之一,它表示当前分组,对象数目(就不用调用nrow函数啦)。[]使用它指提取最后一。...1个参数是筛选器,第2个则筛选后数据进行适当计算。...data.table,by所对应组合值是唯一,虽然实现了目标,但结果没有设置键: key(type_class_test0) #> NULL 这种情况下,我们可以使用keyby来确保结果data.table...一般data.table会保持原来顺序返回,有时候我们想要设定排序,keyby也可以实现,所以是一举两得: type_class_test = product_info[product_tests][...("model", "vehicle"), mean_quality] #> [1] 6 大数据集使用键进行搜索,能够比迭代使用逻辑比较快得多,因为键搜索利用了二进制搜索,而迭代不必要计算上浪费了时间

    6.3K20

    理解PG如何执行一个查询-1

    每个算子都有不同成本估算。例如,整个表进行顺序扫描成本计算为表8K块数量,加上一些CPU开销。 选择代价最低执行计划后,查询执行器从计划开头开始,并向最顶层算子要结果集。...这种情况下,第一步实际上列计划末尾。当阅读查询计划时,务必记住计划每个步骤都会产生一个中间结果集。每个中间结果集都会送入计划下一步。...在这两种情况下,您都在对整个表执行顺序扫描。 顺序扫描完成构建其中间结果集后,它被送入计划下一步。这个特定计划最后一步是排序操作,它是满足我们ORDER BY子句所必需。...排序操作对顺序扫描产生结果集进行重新排序,并将最终结果集返回给客户端应用程序。 注:ORDER BY子句在所有情况下都不需要排序操作。规划器/优化器可能决定它可以使用索引来结果集进行排序。...其次,Seq Scan按表顺序返回,而不是按排序顺序。索引扫描将按索引顺序返回。 并非所有索引都是可扫描。可以扫描B-Tree、R-Tree和GiST索引类型;哈希索引不能。

    2K20

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

    接下来,我就为大家分享几个我工作当中最常用来做数据分析用到包,dplyr和data.table,我保证你get到这两个包后,就再也不想用R里面自带基础包函数进行数据分析了!!...(V2),V3) V1,V3升序排序V2降序排序 ※arrange语法非常简单,功能也很强大,我们再也不要用order()函数了 select( ) 选择列 select(df,V1,V2,V3...①第一个参数都是数据集df ②查询条件都是关于如何操作数据集列上面进行操作 ③返回都是新数据集,不会改变原始数据集 介绍下一个包之前,我们先来引入一个dplyr包综合运用: grouped...data.table包 dplyr已经可以满足我们数据分析工作中大部分需求,后来该包作者又开发了一个炫酷吊炸天包“data.table” 如果你日常处理数据几万到十几万,那么用dplyr...以上讲这些只是我工作data.table用得最多功能,它强大之处还远远不止这些!如果你想深入,可以去官网下载文档,你绝对值得拥有!

    2.4K70

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

    因此,在对大数据处理上,使用data.table无疑具有极高效率。这里主要介绍基因组数据分析可能会用到函数。...,R层次C代码 data.table TRUE返回data.table,FALSE返回data.frame 可见1.8GB数据读入94秒,读入文件速度非常快 fwrite 对数据框数据进行处理后...前面三个选项都是用新特定C代码写,较快; buffMB 每个核心给缓冲大小,1到1024之间,默认80MB; nThread 用核心数; showProgress 工作台显示进程...显示没有联合成功行列 value.var 填充值列,默认会猜测 现在我需要取数据DTv1,v2两列相同情况作为汇总一类,它们v4值取平均,转换如下,...by ]语法做 但是如果我要将上述DTv3作为一个影响因素,作为tag,先按v1、v2汇总,再将对应v4值分为v3=1和v3=2两类,查看v1、v2取值相同v3不同对应v4情况,这个时候用dcast

    3.4K10

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

    (x, y): 所有 x 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老鼠书直观很多...数据建模 broom 1. broom 机器学习本质其实就是各种姿势回归,而在R各种回归分析往往不会返回一个整齐data frame 结果。...data.table完美兼容data.frame,这意味着之前data.frame操作我们可以完全保留,并且支持更多方便数据操作方法。...3.R Tutorial: Data Frame 4.Python Pandas 官方文档 5.知乎:R语言读大数据? 6.知乎高分问答:如何使用 ggplot2?

    3.9K120

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

    我们在对多列标准进行筛选时,之前我们还进行了一步非常重要提取,也就是将每一列观察值提取出某一特定字段,而后生成一系列变量,这些变量观测值只可能存在三种情况:醛固酮、继发性醛固酮或者NA。...经过这样处理我们才能进行上一期公众号所讲述下一步:以多列标准进行筛选操作。...上述结果可以看出,我们重新生成了很多被处理过变量,都带有后缀_xtrct,下面让村长这一代码进行详细解析。...在这里通过链接推送lapply使用原理,再加上stringr包str_match这个函数使用,截取出诊断结果中出现过继发性醛固酮或者醛固酮,没有出现过自动记为NA。...str_c(colnames(clinic)[2:23], "_xtrct") 最后我们把 ':=' 左右两边代码组合在一起,放入data.table语句j中就是我们一开始所讲述代码。

    1.2K20

    Princeton Algorithms, Burrows-Wheeler

    事实上,第 3 步 Huffman 压缩才是唯一信息进行压缩步骤,但是前 2 步变换和编码可以保证特定字符出现频率高于其他字符,从而保证 Huffman 压缩具有较高压缩效率。...它依赖于以下直觉:如果你英文文本中看到字母 hen,那么,大多数情况下,它前面的字母不是 t 就是 w。 我们先来看一个例子,然后解释一下 Burrows–Wheeler 变换是如何进行。...那么,next[first] 就是排序顺序第 1 个原始后缀(原始字符串左移 1)出现、next[next[first]] 是排序顺序第 2 个原始后缀出现、next[next[next[first...对于一个输入字符串只出现过一次字符,很容易推导出 next[]。 例如,考虑以 C 开头后缀: 通过检查第一列,它在排序顺序中出现了第 8 位。...在这之后下一个原始后缀将以 C 作为最后一个字符(因为每次是原始字符串循环左移 1 位,所以 C 必定被移动到了最后一位),通过检查最后一列,下一个原始后缀排序顺序中出现第 5 个字符。

    64610

    Hbase入门(三)——数据模型

    HBase表是通过键(Rowkey)进行区分键也是用来唯一确定一标识。 HBase按Rowkey排序排序方式采用字典顺序。...因此,时间戳t8处contents:html列请求将不返回任何值。类似地,时间戳t9处anchor:my.look.ca值请求将不返回任何值。...但是,如果未提供时间戳,则将返回特定最新值。给定多个版本,最新版本也是第一个版本,因为时间戳按降序存储。...Get 操作返回指定属性,Get是Scan基础上实现默认情况下,如果没有指定版本,一旦使用Get操作,会返回最近版本Cell。...有三种不同类型内部删除标记。 删除:对于特定版本列。 删除列:适用于列所有版本。 删除系列:适用于特定 ColumnFamily 所有列 SCAN 扫描表 下面是对表进行扫描示例。

    1.1K20
    领券