R 嵌套列表中的lapply data.table setDT无效或不等幂?
我有一个嵌套的数据帧列表,我只想对名为“train_set”的特定数据帧项执行操作R 嵌套列表中的lapply data.table setDT无效或不等幂?,r,list,data.table,R,List,Data.table,我有一个嵌套的数据帧列表,我只想对名为“train_set”的特定数据帧项执行操作 库(data.table) 训练集我也有点费劲才爬上工作台。我可以让它将数据帧转换成数据表,但它拒绝保留行名称 我发现一个简单的双循环工作。它可能是在覆盖数据帧之前复制数据帧,所以我不知道这是否足够快以满足您的需要。使用我的机器处理数据似乎需要大约6毫秒 for(1:3中的i) 对于(1:2中的j) 排行榜[[i]][[j]$`aa` #>$`aa`$`列车组` #>样本x y z #>1:观察值2 0系数1 #
库(data.table)
训练集我也有点费劲才爬上工作台。我可以让它将数据帧转换成数据表,但它拒绝保留行名称
我发现一个简单的双循环工作。它可能是在覆盖数据帧之前复制数据帧,所以我不知道这是否足够快以满足您的需要。使用我的机器处理数据似乎需要大约6毫秒
for(1:3中的i)
对于(1:2中的j)
排行榜[[i]][[j]$`aa`
#>$`aa`$`列车组`
#>样本x y z
#>1:观察值2 0系数1
#>2:观察系数1
#>3:观察2 2因素1
#>4:观察2 3因素1
#>5:观察2 4因素1
#>6:观察2 5因素1
#>7:观察结果2 6因素1
#>8:观察2 7因素1
#>9:观察2 8因素1
#>10:观察结果2 9因素1
#>
#>$`aa`$测试集
#>样本x y z
#>1:观察值\u 1 0系数2
#>2:观察系数2
#>3:观察值\u 3 1 2因素2
#>4:观察值\u 4 1 3因素2
#>5:观察结果1 4因素2
#>6:观察结果1 5因素2
#>7:观察值1 6因素2
#>8:观察值\u 8 1 7因素2
#>9:观察结果1 8因素2
#>10:观察值1 9因素2
#>11:观察值\u 11 10因素2
#>12:观察值11系数2
#>
#>
#>bb美元
#>$bb$`列车组`
#>样本x y z
#>1:观察值2 0系数1
#>2:观察系数1
#>3:观察2 2因素1
#>4:观察2 3因素1
#>5:观察2 4因素1
#>6:观察2 5因素1
#>7:观察结果2 6因素1
#>8:观察2 7因素1
#>9:观察2 8因素1
#>10:观察结果2 9因素1
#>
#>$bb$测试集
#>样本x y z
#>1:观察值\u 1 0系数2
#>2:观察系数2
#>3:观察值\u 3 1 2因素2
#>4:观察值\u 4 1 3因素2
#>5:观察结果1 4因素2
#>6:观察结果1 5因素2
#>7:观察值1 6因素2
#>8:观察值\u 8 1 7因素2
#>9:观察结果1 8因素2
#>10:观察值1 9因素2
#>11:观察值\u 11 10因素2
#>12:观察值11系数2
#>
#>
#>$cc
#>$cc$`列车组`
#>样本x y z
#>1:观察值2 0系数1
#>2:观察系数1
#>3:观察2 2因素1
#>4:观察2 3因素1
#>5:观察2 4因素1
#>6:观察2 5因素1
#>7:观察结果2 6因素1
#>8:观察2 7因素1
#>9:观察2 8因素1
#>10:观察结果2 9因素1
#>
#>$cc$测试集
#>样本x y z
#>1:观察值\u 1 0系数2
#>2:观察系数2
#>3:观察值\u 3 1 2因素2
#>4:观察值\u 4 1 3因素2
#>5:观察结果1 4因素2
#>6:观察结果1 5因素2
#>7:观察值1 6因素2
#>8:观察值\u 8 1 7因素2
#>9:观察结果1 8因素2
#>10:观察值1 9因素2
#>11:观察值\u 11 10因素2
#>12:观察值11系数2
我将在我的真实数据上尝试此功能。我也有同样的想法,但无法以保持列表结构的方式分配for循环的输出。我认为这实际上是可行的。可能会有更快的实现,但与以前的dplyr
版本相比,现在的速度绝对足够快,可以满足我的需要。我将代码调整为(c中的I(1:长度(顶部列表))(c中的j(1))
,以概括外环,仅调整第一个表(列集)在内部循环中。我仍然想知道lappy
调用有什么问题?我没有尝试在lappy中重新分配-你可以尝试。我经常使用lappy,但我认为这里的循环比嵌套的lappy更干净,因为调用是一个单行程序,所以你不需要括号。我建议使用大数据量.table比data.tables的列表要多。rbindlist(unlist(top\u list,recursive=FALSE),use.names=FALSE,idcol=“table”)