初始化R中的嵌套数据帧

初始化R中的嵌套数据帧,r,initialization,nested,data.table,R,Initialization,Nested,Data.table,我有一个名为ldt的嵌套数据表。每个方向上的最高尺寸为 ldt[[44]][7200,4] 这意味着每个嵌套的data.table(DT)是4列7200行,有44个这样的嵌套DTs 我想在第一组DTs的基础上创建第二组DTs 具体来说,我想执行这个命令 for (i in length(ldt)) {ldtSUM[[i]]<-ldt[[i]][, sum(V4), by="V1,V3"]} 但这样做反而会导致错误: Error in ldtSUM[[i]] <- ldt[[i]]

我有一个名为ldt的嵌套数据表。每个方向上的最高尺寸为

ldt[[44]][7200,4]
这意味着每个嵌套的data.table(DT)是4列7200行,有44个这样的嵌套DTs

我想在第一组DTs的基础上创建第二组DTs

具体来说,我想执行这个命令

for (i in length(ldt)) {ldtSUM[[i]]<-ldt[[i]][, sum(V4), by="V1,V3"]}
但这样做反而会导致错误:

Error in ldtSUM[[i]] <- ldt[[i]][, sum(V4), by = "V1,V3"] : object 'ldtSUM' not found
和许多其他语句,但它们都由于各种原因而失败,例如我没有指定许多空行,或者“递归索引在级别3失败”等等

总之,我想做的是创建一个data.table,其中$V4由$V1、$V3求和,但由于索引和初始化问题,我似乎无法这样做


多谢各位

根据agstudy的回答,正确的代码是:

ldtSUM<-lapply(ldt,function(x)x[, sum(V4), by = "V1,V3"]

ldtSUM您的问题有两部分:
您已经解决的第一部分是:

ldtSUM<-lapply(ldt,function(x)x[, sum(V4), by = "V1,V3"]

ldtSUMAvoid
for
循环。使用类似于
lappy(ldt,函数(x)x[,sum(V4),by=“V1,V3”])
。谢谢!我开始尝试lappy语法,但放弃了这个。这是我本来应该得到的。
ldtSUM<-lapply(ldt,function(x)x[, sum(V4), by = "V1,V3"]
ldtSUM<-lapply(ldt,function(x)x[, sum(V4), by = "V1,V3"]
ldtSUM <- list()
for (i in length(ldt)) {ldtSUM[[i]]<-ldt[[i]][, sum(V4), by="V1,V3"]}