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

如何在不删除其他列的情况下更新data.table中的预定义列列表?

在data.table中,可以使用:=操作符来更新预定义列列表,而不需要删除其他列。:=操作符用于在data.table中创建或更新列。

要在不删除其他列的情况下更新预定义列列表,可以使用以下步骤:

  1. 使用:=操作符将要更新的列赋值给预定义列列表。例如,假设data.table的名称为dt,要更新的列为col1col2,可以使用以下代码:
代码语言:txt
复制
dt[, c("col1", "col2") := list(new_col1, new_col2)]

其中,new_col1new_col2是要更新的新值。

  1. 如果要更新的列是通过计算得到的,可以在:=操作符中使用表达式。例如,假设要将col1的值更新为col2的两倍,可以使用以下代码:
代码语言:txt
复制
dt[, col1 := col2 * 2]

需要注意的是,使用:=操作符更新列时,会直接在原始的data.table上进行修改,而不会创建新的data.table。

以下是对应的答案内容:

在data.table中,可以使用:=操作符来更新预定义列列表,而不需要删除其他列。:=操作符用于在data.table中创建或更新列。

要在不删除其他列的情况下更新预定义列列表,可以使用以下步骤:

  1. 使用:=操作符将要更新的列赋值给预定义列列表。例如,假设data.table的名称为dt,要更新的列为col1col2,可以使用以下代码:
代码语言:txt
复制
dt[, c("col1", "col2") := list(new_col1, new_col2)]

其中,new_col1new_col2是要更新的新值。

  1. 如果要更新的列是通过计算得到的,可以在:=操作符中使用表达式。例如,假设要将col1的值更新为col2的两倍,可以使用以下代码:
代码语言:txt
复制
dt[, col1 := col2 * 2]

需要注意的是,使用:=操作符更新列时,会直接在原始的data.table上进行修改,而不会创建新的data.table。

希望以上内容对您有帮助。如果您需要了解更多关于data.table的信息,可以参考腾讯云的产品介绍页面:data.table产品介绍

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

相关·内容

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

将一个R对象转化为data.table,R可以时矢量,列表,data.frame等,keep.rownames决定是否保留行名或者列表名,默认FALSE,如果TRUE,将行名存在"rn"行,keep.rownames...; drop,需要取掉列名或者号,要其它; colClasses,类字符矢量,用于罕见覆盖而不是常规使用,只会使一变为更高类型,不能降低类型; integer64,读64位整型数;...(a = .(), b = .())] 输出一个a、b数据框,.()就是要输入a、b内容,还可以将一系列处理放入大括号,{tmp <- mean(y);...., by=x][order(x)] #和上面一样,采取data.table链接符合表达式 DT[v>1, sum(y), by=v] #对v进行分组后,取各组v>1行出来,各组分别对定义... 填充首尾匹配行,TRUE填充,FALSE填充,与roll一同使用 which TRUE返回匹配行号,NA返回匹配行号,默认FALSE返回匹配行 .SDcols 取特定,然后.

5.6K20

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

因此,在对大数据处理上,使用data.table无疑具有极高效率。这里主要介绍在基因组数据分析可能会用到函数。...需要取掉列名或者号,要其它; colClasses 类字符矢量,用于罕见覆盖而不是常规使用,只会使一变为更高类型,不能降低类型; integer64 读64位整型数;..."; row.names 是否写出行名,因为data.table没有行名,所以默认FALSE; col.names 是否写出列名,默认TRUE,如果没有定义,并且append=TRUE...自动设为TRUE,这个时候至少要有一个对象要存在行名; idcol 产生一个index,默认(NULL)产生,如果idcol=TRUE,行名自动为.id,当然你也可以直接命名,比如idcol...; which 默认FALSE结果返回x和y行联合,当是TRUE时,如果mult=“all”,返回两,一x号,一相对应y,如果nomatch=NA,匹配返回yNA,如果nomatch

3.2K10

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

其实很早就接触过data.table,之所以一直没有深入应用,因为它理念与其他数据处理包偏离太远,可以说迁移成本很高,几乎就是技能重构而非迁移。...DT[i,j,by] 如果这个过程是SQL是由select …… from …… where …… groupby …… having 来完成,在R其他基础包起码也是分批次完成。...(carrier,tailnum)] #但心里要清楚索引接受条件是含有列表列表,而且这里列表作为变量给出,而非data.frame时代字符串向量。 行列同时索引毫无压力。...注意以上新建时,如果只有一,列名比较自由,写成字符串或者变量都可以,但是新建多,必须严格按照左侧列名为字符串向量,右侧为列表模式,当然你也可以使用第二种写法。...自定义名称: mydata[,.

3.6K80

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

data.table语法简洁,并且只需一行代码就可以完成很多事情。进一步地,data.table在某些情况下执行效率更高。...data.table,还有一个比较特立独行函数: 使用:=引用来添加或更新(参考:R语言data.table速查手册) DT[, c("V1","V2") := list(round(exp(V1...),2), LETTERS[4:6])] DT[, c("V1","V2") := NULL] 通过list方式来更新了数据,以及使用null方式来删除。...—————————————————————— 实战一:在data.table如何选中,如何循环提取、操作data.table?...(x)] 还有 data$x 如果有很多名字很长指标,data.table如果按进行遍历呢? data[,1]是不行,选中方式是用列名。

7.4K43

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

freadnThread 参数使用   注意默认nThread=getDTthreads(),即使用所有能用核心,但并不是核心用越多越好,本人亲自测试情况下,其实单核具有较强性能,只有在数据大于...3Gb情况下,开启10核(我机器全部核心30多核)效率才比一个核心更高,而默认使用全部核心效率一直非常低。...as.data.table函数同样有一个rownames参数,设置为T可以将行名保留下来作为data.table 建议set和for循环一起使用   虽然set可以在内存上直接改变数值,但在R...  类似于集合运算,data.tablefintersect, fsetdiff, funion,fsetequal函数能对不同数据框行求交集,差集,并集等 可以直接对按分隔符进行分割   应用...tstrsplit函数可以将一按照分隔符分成多,函数返回是一个列表,举例:DT[, c("c1", "c2") := tstrsplit(x, "/", fixed=TRUE)][],将x按照/

1.5K10

R语言高级数据结构data.table

对于data.frame大家应该很熟悉,它可以存储不同数据类型向量数据。今天给大家介绍一个升级版data.frame,其不仅可以存储不同数据类型还可以进行多并行运算。...as.data.table 将R对象转化为data.table格式数据,其对象可以为列表,向量,data.frame。...选取也发生了改变,其中引入了list别名 .() 进行数据筛选: DT[,y] DT[,.(y)] ?...3. data.table数据函数调用以及并行运算加入: DT[,sum(y)] DT[,.(sum(y),sum(v))] ? 4. 自定义函数执行,需要用{}包裹所有的命令。...各分组计数函数.N,例: DT[,.N,by=x] 7. 其中数据各增加,删除,修改,用到函数是:=。 DT[,y1:=y] DT[,y:=NULL] DT[,y:=(y+1)] ?

2.1K30

MySQL Innodb和Myisam

聚集索引记录就地更新,它们隐藏系统指向撤消日志条目,可以从中重建记录早期版本。与聚集索引记录不同,二级索引记录包含隐藏系统,也不会就地更新。...当二级索引更新时,旧二级索引记录被删除标记,新记录被插入,并最终被删除标记记录被清除。 当二级索引记录被删除标记或二级索引页被更新事务更新时,InnoDB在聚集索引查找数据库记录。...可以读取页,因为它是用户启动操作(例如 SQL 查询)所必需,或者是由 自动执行读操作一部分 InnoDB。 访问旧子列表页使其 “年轻”,将其移动到新子列表头部。...随着数据库运行,缓冲池中未被访问页会通过向列表尾部移动来“老化”。新旧子列表页随着其他更新而老化。旧子列表页也会随着页插入中点而老化。最终,一个未使用页到达旧子列表尾部并被驱逐。...同样,删除更新可能会影响索引树不相邻二级索引页。稍后在其他操作将受影响页读入缓冲池时合并缓存更改,可避免大量随机访问 I/O,而这些 I/O 将需要将二级索引页从磁盘读入缓冲池。

1.7K20

R语言 数据框、矩阵、列表创建、修改、导出

data.frame生成指定数据框列名及内容,代码所示,此时列名不需添加"",df1为变量名,格式为列名=向量*matrix矩阵与向量一样只允许同一种数据类型,否则会被转换,可以理解为二维向量...R语言将列名特殊字符-转化了,该编号可能与其他数据编号无法匹配,ex2 <- read.csv("ex2.csv“",row.names = 1,check.names = F) #row.names...=1指定第一为行名,check.names=F指定转化特殊字符#注意:数据框不允许重复行名#rod = read.csv("rod.csv",row.names = 1) #再次重复:数据框不允许重复列名.../则为上一级)#文件是由生成它函数决定,不是由后缀决定,save为csv实际上还是一个Rdata#readr包可以实现base包类似功能library(data.table)#其中fread...不支持l$m1 #取出名为m1成分变量删除rm(l) #删除列表lrm(df1,df2) #删除变量df1与df2rm(list = ls()) #清空所有变量附作业答案及解释# 练习3-1# 1

7.6K00

MR应知应会:MungeSumstats包

默认 0.9 FRQ_filter 0-1 SNP 频率(FRQ)允许最小值(即等位基因频率(AF))(如果在 sumstats 文件存在)。默认情况下不进行过滤,即值为 0。...pos_se 是否应该检查标准错误 (SE) 以确保它大于 0?那些存在内容将被删除(如果 sumstats 文件存在)。默认为TRUE。...那些这样做删除(如果存在于 sumstats 文件)。默认为TRUE。 N_std 需要删除高于 SNP N 平均值标准差数。默认值为 5。...这可能会导致错误,因此默认情况下,将保留第一个 RS ID,并删除其余,例如“rs5772025”。如果您只想完全删除这些 SNP,请将其设置为 TRUE。默认值为 FALSE。...mapping_file MungeSumstats 有一个预定义列名映射文件,该文件应涵盖最常见标题及其解释。

1.1K10

Matt Dowle 演讲节选(二)

> DF[2:3, sum(B)] 注:在 S-PLUS ,以上命令必须要用一种非常直观方式写出来,如下: > sum(DF[2:3, "B"]) 2004:data.table诞生 2004...而在第二种方法,由于采用了 assignment by reference,data.table仅对内存v1所在地址进行修改,其他地方则不变!事实上,DF 在第二种方法中一遍都没有被复制!...因为任何对处理都必须导致数据集在内存复制,也即假如我们内存是 4G,那么在使用data.frame情况下,我们最大就只能处理 2G 数据集!...一个更极端例子是,加入你在 4G 内存 装下了一个 3G 数据集,这时你想要删去其中都是不可能,因为在data.frame,哪怕删除操作都会导致数据集复制!...True,时间是缩短不少,但那意味着许多枯燥输入。假设你有100,难道你要每class都指定一遍? 这时你就需要fread("test.csv")!不需要输入任何其他参数,你猜要运行多久?

1.1K40

ExcelSNP数据如何变为plink格式

Excel格式xls或者xlsx格式文件 测序公司给是xls或者xlsx格式数据,数据格式如下: 第一是ID 第二是染色体 第三是物理位置 第四是Ref 第五以后是每个个体具体分型...这个一般是map和ped数据匹配,可以通过Rmap和map查看一下什么情况: > dim(map) [1] 43251 4 > dim(ped) [1] 185 43257 可以看到...当然,上面的位点中,有些是多态性位点,稀有的多态位点会作为缺失。 常见问题3:indel位点 plink格式不支持indel位点,需要将indel位点删除。...思路: 将其读取到R 转置 保存到本地 然后通过grep,去掉相关行 然后再读到R,再进行处理。 报错总结 数据有空行,有缺失,有indel。...更新代码,判断是否有空行,将NN作为缺失读取到R,可以避免上面的情况,更新代码如下: library(openxlsx) library(tidyverse) library(data.table

1.6K10

使用管理门户SQL接口(一)

可以对现有的表和数据执行SQL查询,创建表,或插入、更新删除表数据。...可以编写SQL代码直接转化为一个文本框(包括选择、插入、更新删除、创建表和其他SQL语句),检索语句SQL历史文本框,拖拽一个表到文本框来生成一个查询(SELECT语句),或构成一个查询(SELECT...Actions -定义一个视图; 打印一个表定义详细信息; 通过运行调优表和/或重建索引提高查询性能; 或者通过清除不需要缓存查询和/或删除不需要表、视图或过程定义来执行清理。...可以使用X图标删除文本框内容。使用Show History列表选择前面的SQL语句。 选中语句将复制到文本框。 执行时,该语句移到Show History列表顶部。...可以单击任何标题,根据值按升序或降序排列SQL语句。从Show History列表执行SQL语句将更新其执行时间(本地日期和时间戳),并增加其计数(执行次数)。

8.3K10

好强一个Julia!CSV数据读取,性能最高多出R、Python 22倍

单线程CSV.jl比data.table快2.5倍,而在10个线程,CSV.jl则大约比data.table快14倍。 字符串数据集 II 该数据集大小与字符串数据集 I 相同。...在这种情况下,单线程data.table大约比CSV.jl快5倍。线程增加,CSV.jl稍慢于R。...可以看出,在所有八个数据集中,JuliaCSV.jl总是比Pandas快,并且在多线程情况下,它与Rdata.table互有竞争。...在Julia,Python和R测试,引发了网友们更多关于“技术更新热烈讨论。...不过,也有网友表达了对“更新重置成本”担忧: 我认为Python生态系统已经成熟,并且在过去1-2年已成为标准,这具有巨大价值。

2K63

谁是PythonRJulia数据处理工具库最强武器?

Python/R/Julia数据处理工具多如牛毛「pandas、spark、DataFrames.jl、polars、dask、dplyr、data.table、datatable等等」,如何根据项目需求挑选趁手武器...---- 待评估软件 项目目前已收录Python/R/Julia13种工具,随着工具版本迭代、新工具出现,该项目也在持续更新,其它工具AWK、Vaex、disk也在陆续加入到项目中。..., 数据量 0.5GB 数据 10,000,000,000行、9 5GB 数据 100,000,000,000行、9 50GB 数据1,000,000,000,000行、9 groupby性能 比较以下各种需求效率..., 详细代码,见每个柱子图上方, join性能 比较以下各种需求效率, 详细代码,见每个柱子图上方, ---- 评估结果 groupby 可以看到PythonPolars、Rdata.table...join 同样可以看到PythonPolars、Rdata.table在join时表现不俗,详细, 0.5GB数据 join 5GB数据 join 50GB数据 join 小结 Rdata.table

1.7K40

MySQL行格式原理深度解析

MySQL行格式(Row Format)是指存储在数据库表数据物理格式。它决定了数据是如何在磁盘上存储,以及如何在查询时被读取和解析。...存储长度信息有助于数据库正确地解释和重构数据,特别是在进行读取、更新删除操作时。 2....在实际应用,由于行还包括其他信息(变长字段列表、NULL值列表、记录头信息等),实际可存储字符数可能会更少。 此外,当字段数据太大时,InnoDB会将其分成多个部分存储,这称为溢出列。...NULL 值列表:如果表某些定义为允许 NULL 值,并且实际上存储了 NULL 值,那么 InnoDB 需要在行为每个 NULL 分配一个额外字节(在某些情况下,多个 NULL 可能共享相同字节...内部碎片和空间复用:InnoDB 可能会在行内留出一些空间以便将来更新操作,这可能导致一些空间浪费。此外,由于删除更新操作,页内可能会留下一些未使用空间,这些空间可能不会被完全利用。

28410

R语言处理一个巨大数据集,而且超出了计算机内存限制

使用R编程处理一个超出计算机内存限制巨大数据集时,可以采用以下策略(其他编程语言同理):使用数据压缩技术:将数据进行压缩,减小占用内存空间。...可以使用R数据压缩包(bigmemory、ff、data.table)来存储和处理数据。逐块处理数据:将数据集拆分成较小块进行处理,而不是一次性将整个数据集加载到内存。...存储数据集到硬盘:将数据集存储到硬盘上,而不是加载到内存。可以使用readr或data.table函数将数据集写入硬盘,并使用时逐块读取。...数据预处理:在加载数据之前,对数据进行预处理,删除或合并冗余,减少数据集大小。...使用其他编程语言:如果R无法处理巨大数据集,可以考虑使用其他编程语言(Python、Scala)或将数据导入到数据库来进行处理。

68991
领券