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

使用应用于多列的多个函数在data.table中生成多个新列

在data.table中使用应用于多列的多个函数生成多个新列的方法是通过使用:=运算符和函数组合来实现的。

首先,我们需要使用:=运算符将新列添加到data.table中。该运算符允许我们在data.table中进行原地修改,而无需创建新的副本。

然后,我们可以使用函数组合的方式来应用于多列的多个函数。函数组合是指将多个函数按照一定的顺序组合在一起,将前一个函数的输出作为后一个函数的输入。

下面是一个示例代码,演示了如何在data.table中使用应用于多列的多个函数生成多个新列:

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

# 创建一个示例data.table
dt <- data.table(
  col1 = c(1, 2, 3),
  col2 = c(4, 5, 6)
)

# 使用函数组合生成新列
dt[, c("new_col1", "new_col2") := .(col1 * 2, col2 + 1)]

# 查看生成的新列
dt

在上面的示例中,我们使用:=运算符将两个新列new_col1new_col2添加到data.table中。通过函数组合.(),我们将col1 * 2col2 + 1作为两个新列的计算方式。

这样,我们就成功地在data.table中使用应用于多列的多个函数生成了多个新列。

对于data.table中的每个新列,我们可以根据具体的需求选择适当的函数和运算符来进行计算。例如,可以使用数学函数(如sum()mean()max()等)进行统计计算,也可以使用逻辑函数(如ifelse()grepl()等)进行条件判断和筛选。

对于腾讯云相关产品和产品介绍链接地址,由于要求不能提及具体的云计算品牌商,我无法给出具体的链接地址。但是,腾讯云作为一家知名的云计算服务提供商,提供了丰富的云计算产品和解决方案,可以根据具体的需求和场景选择适合的产品进行使用。可以通过访问腾讯云官方网站,了解更多关于腾讯云的产品和服务信息。

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

相关·内容

Excel公式技巧17: 使用VLOOKUP函数多个工作表查找相匹配值(2)

我们给出了基于多个工作表给定匹配单个条件来返回值解决方案。本文使用与之相同示例,但是将匹配多个条件,并提供两个解决方案:一个是使用辅助,另一个不使用辅助。 下面是3个示例工作表: ?...图3:工作表Sheet3 示例要求从这3个工作表从左至右查找,返回Colour为“Red”且“Year”列为“2012”对应Amount值,如下图4所示第7行和第11行。 ?...图4:主工作表Master 解决方案1:使用辅助 可以适当修改上篇文章给出公式,使其可以处理这里情形。首先在每个工作表数据区域左侧插入一个辅助,该数据为连接要查找两个数据。...16:使用VLOOKUP函数多个工作表查找相匹配值(1)》。...解决方案2:不使用辅助 首先定义两个名称。注意,定义名称时,将活动单元格放置工作表Master第11行。

13.6K10

Excel公式技巧16: 使用VLOOKUP函数多个工作表查找相匹配值(1)

某个工作表单元格区域中查找值时,我们通常都会使用VLOOKUP函数。但是,如果在多个工作表查找值并返回第一个相匹配值时,可以使用VLOOKUP函数吗?本文将讲解这个技术。...最简单解决方案是每个相关工作表中使用辅助,即首先将相关单元格值连接并放置辅助。然而,有时候我们可能不能在工作表中使用辅助,特别是要求在被查找表左侧插入列时。...图3:工作表Sheet3 示例要求从这3个工作表从左至右查找,返回Colour为“Red”对应Amount值,如下图4所示。 ?...B1:D10"),3,0) 其中,Sheets是定义名称: 名称:Sheets 引用位置:={"Sheet1","Sheet2","Sheet3"} 公式中使用VLOOKUP函数与平常并没有什么不同...函数进一步构造来生成传递给VLOOKUP函数单元格区域,因此: =VLOOKUP($A3,INDIRECT("'"&INDEX(Sheets,MATCH(TRUE,COUNTIF(INDIRECT("

21K21

R练习50题 - 第一期

写在前面 从这期开始,大猫课堂将会推出一个系列:R练习50题,目的是使用50道练习题让大家掌握常用数据操作,例如寻找每组最大N个观测等。...问题分析 首先,我们需要把股票代码symbol包含8那些观测找出来。我们可以借助与stringr这个字符串处理包。这一步不难,稍微有些挑战是去重。如果我们不去重,那么我们会得到非常重复观测。...例如股票600128,如果它一共有100天观测,那么我们会出现100个重复结果。为了去重,我们需要借助于data.tableunique函数。 我们希望最终输出是一个字符串向量: ?...unique:找出symbol不重复值。 data.table语法,先进行列选择操作,再对进行处理。所以上述语句会先执行str_detect,再执行unique。...代码第二行生成了一个变量num。由于keyby语句中我们已经按照日期与涨跌进行了分组,所以这一步我们只需要统计每个组有多少个股票就可以了。我们在这里使用了uniqueN这个函数

2.4K40

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

data.table 1、I/O性能: data.table被推崇重要原因就是他IO吞吐性能在R语言诸多包首屈一指,这里以一个1.6G2015年纽约自行车出行数据集为例来检验其性能到底如何,...data.table索引 索引与数据框相比操作体验差异比较大,data.table索引摒弃了data.frame时代向量化参数,而使用list参数进行列索引。...注意以上新建时,如果只有一,列名比较自由,写成字符串或者变量都可以,但是新建,必须严格按照左侧列名为字符串向量,右侧为列表模式,当然你也可以使用第二种写法。...当整列和聚合单值同时输出时,可以支持自动补齐操作。 当聚合函数data.table分组参数一起使用时,data.table真正威力才逐渐显露。 mydata[,....如果想要运行同时进行输出则可以结尾加上[] setorder(mydata,carrier,-arr_delay)[] ? 这个功能有点儿类似于基础函数语句外部加上圆括号。

3.6K80

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

") library("stringr") library("readr") library("dplyr") library("data.table") 高效tibble包 tibble定义了数据框...与基本R类似函数不同,变量无需使用 $ 操作符就可直接使用,设计与magrittr包%>%管道操作符一起使用,以允许每个数据阶段写成一行。其是一个大型包,本身可以看成一门语言。...改名 rename(),使用反引号‘`’包裹,允许R使用不规范列名。...非标准计算 代码没有引号包裹原始名字,这种方式叫做非标准计算(NSE),高效交互使用函数,减少键盘输入,允许Rstudio自动完成。还是函数多个_。...数据库与dplyr 必须使用src_*()函数创建一个数据源。# 使用data.table()处理数据 是dplyr替代,两个哪个好存在争议,最好学一个一直坚持下去。

1.9K20

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

包括两个方面,一方面是写快,代码简洁,只要一行命令就可以完成诸多任务,另一方面是处理快,内部处理步骤进行了程序上优化,使用多线程,甚至很多函数使用C写,大大加快数据运行速度。...前面三个选项都是用特定C代码写,较快 buffMB,每个核心给缓冲大小,1到1024之间,默认80MB nThread,用核心数。...比如此例取出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.6K20

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

data.table) melb <- fread("datasets/melb_data.csv") 示例1 第一个示例是关于基于数据集中现有创建。...另一方面,data.table使用列名就足够了。 示例3 在数据分析中使用一个非常常见函数是groupby函数。它允许基于一些数值度量比较分类变量不同值。...我们求出了房屋平均价格,但不知道每个地区房屋数量。 这两个库都允许一个操作应用多个聚合。我们还可以按升序或降序对结果进行排序。...data.table使用减号获得降序结果。 示例5 最后一个示例,我们将看到如何更改列名。例如,我们可以更改类型和距离名称。...inplace参数用于将结果保存在原始数据帧。 对于data.table,我们使用setnames函数。它使用三个参数,分别是表名,要更改列名和列名。

3K30

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

对于data.frame大家应该很熟悉,它可以存储不同数据类型向量数据。今天给大家介绍一个升级版data.frame,其不仅可以存储不同数据类型还可以进行并行运算。...首先看下此格式数据生成: fread 自带读入数据函数,可以直接将txt,csv读入并生成相应data.table格式数据。...3. data.table数据函数调用以及并行运算加入: DT[,sum(y)] DT[,.(sum(y),sum(v))] ? 4. 自定义函数执行,需要用{}包裹所有的命令。...分组计算运算,可以单列分组也可以分组: DT[,.(sum=sum(y)),by=x] DT[,.(sum=sum(v)),by=.(x,y)] ? 6....各分组计数函数.N,例: DT[,.N,by=x] 7. 其中数据各增加,删除,修改,用到函数是:=。 DT[,y1:=y] DT[,y:=NULL] DT[,y:=(y+1)] ?

2.1K30

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

我们在对标准进行筛选时,之前我们还进行了一步非常重要提取,也就是将每一观察值提取出某一特定字段,而后生成一系列变量,这些变量观测值只可能存在三种情况:醛固酮、继发性醛固酮或者NA。...经过这样处理我们才能进行上一期公众号所讲述下一步:以标准进行筛选操作。...在这里通过链接推送lapply使用原理,再加上stringr包str_match这个函数使用,截取出诊断结果中出现过继发性醛固酮或者醛固酮,没有出现过自动记为NA。...:=’ 左边格式问题: ':=' 左边格式应该是一个向量,一个带有需要被处理变量字符格式向量,这一点从colnames这个函数使用可以得知。...那么对于一个字符格式向量处理,最好选择就是stringr这个包,在这里我们为需要提取一部分字段变量,运用str_c这个函数,对每一个变量名加入了后缀_xtrct,从而生成一系列变量名,也即是我们上文中生成那个数据集

1.2K20

从零开始异世界生信学习 R语言部分 04 文件读写与认知

("soft.txt",header = T,sep = "\t") #调整数据分隔符 soft2_2 <- read.delim("soft.txt",header = T) #可以使用read.delim...函数 图片 #4.soft 行数列数是多少?...") load("xerror.csv") 图片 将一个项目的不同结果数据存在不同文件夹 图片 将一个项目的不同部分分别存在不同文件夹 图片 图片 图片 # data.tablefread函数...函数 library(rio) #不能读取问题文件, wf1 <-import("wf1.xlsx") #读取xlsx文件 wf <- import_list("wf.xlsx") #可以吧多个sheet...") #可以将列表一部分就可以导出csv文件 图片 补充知识 矩阵如何生成 # 1.由数值型数据框转换 m1 = as.matrix(iris[,1:4]) # 2.由向量改变维度而来 m2 =

1.3K40

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

接下来,我就为大家分享几个我工作当中最常用来做数据分析用到包,dplyr和data.table,我保证你get到这两个包后,就再也不想用R里面自带基础包函数进行数据分析了!!...mutate( ) 为数据增加 mutate(df,vnew1=v1-v2,vnew2=vnew1+v3) 与基础包里transform()函数接近,但mutate可以使用你刚刚创建column...找到合适packages并学习使用它,绝对会让我们数据分析工作事半功倍! 我们有没有发现dylyr包函数使用一些规律? 有的!...①第一个参数都是数据集df ②查询条件都是关于如何操作数据集列上面进行操作 ③返回都是数据集,不会改变原始数据集 介绍下一个包之前,我们先来引入一个dplyr包综合运用: grouped..."B")] 使用j DT[,v1] #选择v1 那如果我要选择呢,大家注意一下这里不是用c()来选取了, 而是通过.()来选取,注意前面有一个”.”号,所以我说data.table语法有点奇怪呢

2.4K70

20231220-简单文件格式读取

R语言中,对数据框进行操作,相应改动不会被同步到csv文件 如果想要对原本文件进行修改,把修改后内容重新写为csv文件 write.csv(x,file="x.csv") 一个文件本质是由生成函数决定...x.csv") 导出csv文件 write.table(x,file="x.txt")导出txt文件 2R语言特有的文件格式 R.data 保存是变量,不是表格文件,支持保存多个文件 save(x,file...=1,check.names=F) (3)数据框不允许重复行名 如果读取失败需要先去重复,来设置行名 (4)有时数据中有一些缺失值,文件读取失败 解决办法:read.table("x.txt",header...=T,fill=T) 把缺失值用NA来代替,但R语言读取TXT文件时,会把所有的空格识别为一个分隔符,直接把后一数据识别为前一行数据,然后把后一数据用NA来补充。...这样会导致数据紊乱,所以外面需要检查自己数据。这个错误可以用一些函数来避免掉 read.delim("x.txt") data.table::fread("x.txt",data.table=F)

13010

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

首先,假设我有一个这样数据集(暂且命名为t1): ? 现在我想做是对于每一行,找出非NA值,填充到“mean.scale”这个变量;如果有多个非NA,那么就计算其平均值。...(fund_name)] 其中关键在于拼接函数c(),它将不同向量拼接成了一。另外,这个操作是不是有点熟悉?...对,这个步骤和cast和melt函数作用类似,只不过这里直接用了data.table自己语句。...事实上,data.table也整合了reshapecast和melt函数,并且将cast函数升级为dcast,感兴趣小伙伴可以去研究一番。 在拉直数据后,接下来要做工作就很简单了。...我们只要把数据按照fund_name分组,然后对每组求scale均值。唯一需要注意有两点。首先,别忘了meanna.rm = T参数,它能够让函数忽略缺失值。

1.3K20

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

因此对于不是非常巨大文件,建议设置为1,不要使用全部核心 freadsep是自动检测   所以循环读入文件过程,就算不同文件分隔符不同,也可以循环一次性方便读入; 还有就算后续改变了文件分隔符...as.data.table函数同样有一个rownames参数,设置为T可以将行名保留下来作为data.table 不建议set和for循环一起使用   虽然set可以在内存上直接改变数值,但在R...中用for循环比批量运算慢,因此首选:=或者apply等 处理浮点数时会有一些准确性问题   比如用seq函数numeric类型数值时,会存在不准确问题,比如seq(0,1,by=0.2)...  类似于集合运算,data.tablefintersect, fsetdiff, funion,fsetequal函数能对不同数据框行求交集,差集,并集等 可以直接对按分隔符进行分割   应用...tstrsplit函数可以将一按照分隔符分成函数返回是一个列表,举例:DT[, c("c1", "c2") := tstrsplit(x, "/", fixed=TRUE)][],将x按照/

1.5K10

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

/则为上一级)#文件是由生成函数决定,不是由后缀决定,save为csv实际上还是一个Rdata#readr包可以实现base包类似功能library(data.table)#其中fread...函数可以避免此前错误a<-fread("soft.txt",data.table = F)class(a)#但其不会有行名,且其会有一个data.table数据结构多出来,可以设置data.table...c(1,3),1:2] #取出第1、3行1、2数据,取时候需要组织成合适向量df1[,-ncol(df1)] #删去最后一,"-"意义同向量列名或行名取子集df1[,"gene"] #取出列名为...#取子集方法同数据框t(m) #转置行与,数据框转置后为矩阵as.data.frame(m) #将矩阵转换为数据框列表列表内有多个数据框或矩阵,可通过list函数将其组成一个列表l <- list(m1...2倍标准差,并写出用户使用函数代码 。

7.7K00

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

包括两个方面,一方面是写快,代码简洁,只要一行命令就可以完成诸多任务,另一方面是处理快,内部处理步骤进行了程序上优化,使用多线程,甚至很多函数使用C写,大大加快数据运行速度。...因此,在对大数据处理上,使用data.table无疑具有极高效率。这里主要介绍基因组数据分析可能会用到函数。...需要取掉列名或者号,要其它; colClasses 类字符矢量,用于罕见覆盖而不是常规使用,只会使一变为更高类型,不能降低类型; integer64 读如64位整型数;...前面三个选项都是用特定C代码写,较快; buffMB 每个核心给缓冲大小,1到1024之间,默认80MB; nThread 用核心数; showProgress 工作台显示进程...patterns patterns是melt函数内部使用函数,匹配正则表达式。

3.3K10

Matt Dowle 演讲节选(二)

这里关键在于,第一种方法,每为一行赋值,data.table就要重新复制一遍DT,也就是说,第一种方法运行过程,DF被复制了1000遍!...因为任何对处理都必须导致数据集在内存复制,也即假如我们内存是 4G,那么使用data.frame情况下,我们最大就只能处理 2G 数据集!...(大猫:最新版本 R ,这个问题已经明显缓解,但是这时已经过去了5年)而在data.table,一切都是那么自然: > DF[, colToDelete := NULL] 哪怕你数据集有...这个用户一开始使用lapply和do.call函数,不仅计算时间很长(30 min!),而且代码特别难看: ? 而使用data.table,则简直是一阵春风: ?...2014:data.table现在 fread函数 在演讲最后(演讲2014年),Matt 提到了当时他正在给data.table添加新功能:fast read,也即fread函数

1.1K40
领券