Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 嵌套列表中的lapply data.table setDT无效或不等幂?_R_List_Data.table - Fatal编程技术网

R 嵌套列表中的lapply data.table setDT无效或不等幂?

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 #

我有一个嵌套的数据帧列表,我只想对名为“train_set”的特定数据帧项执行操作

库(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”)