以下是我正在使用的列表。随着收集的数据越来越多,我将获得更多类似的列表,每个列表都包含不同数量的元素(也包括列表):
> str(ADOs)
List of 2
$ TrucPropk:List of 8
..$ distance : num [1:13626, 1] 0 0.784 1.569 2.354 3.137 ...
..$ frames : int [1:13626(1d)] 3053 3054 3055 3056 3057 3058 3059 3060 3061 3062 ...
..$ heading : num [1:13626, 1] 3.14 3.14 3.14 3.14 3.14 ...
..$ pitch : num [1:13626, 1] 0.00 0.00 1.70e-05 1.70e-05 5.88e-05 ...
..$ pos : num [1:13626, 1:3] -9524 -9524 -9524 -9524 -9524 ...
..$ relative_distance: num [1:13626, 1] 92.6 92.6 92.6 92.6 92.6 ...
..$ roll : num [1:13626, 1] 0.00 0.00 1.00e-36 1.00e-36 -4.48e-05 ...
..$ speed : num [1:13626, 1] 14.3 14.3 14.4 14.4 14.3 ...
$ Truck :List of 8
..$ distance : num [1:13092, 1] 0 1.34 2.69 4.03 5.38 ...
..$ frames : int [1:13092(1d)] 3587 3588 3589 3590 3591 3592 3593 3594 3595 3596 ...
..$ heading : num [1:13092, 1] 3.14 3.14 -3.14 -3.14 -3.14 ...
..$ pitch : num [1:13092, 1] 0.00 0.00 1.01e-06 1.01e-06 3.20e-06 ...
..$ pos : num [1:13092, 1:3] -9512 -9512 -9512 -9512 -9512 ...
..$ relative_distance: num [1:13092, 1] -268 -268 -267 -267 -267 ...
..$ roll : num [1:13092, 1] 0.00 0.00 1.78e-05 1.78e-05 8.86e-05 ...
..$ speed : num [1:13092, 1] 24.6 24.6 24.6 24.6 24.6 ...
在上面的列表中,有2个列表,其中包含8个元素。但是这些数字可能会在其他列表中发生变化。
我想将原始列表拆分为具有相同名称的单独数据框(在本例中为2)(在此示例中为' TrucPropk'' Truck')。我想在代码中为闪亮的应用程序执行此操作。
Google搜索结果显示此answer为最高结果。这会将列表拆分为列表并存储到全局环境中。但我想分成数据框并在应用程序中使用它们。
如何将列表中的列表转换为单独的数据框,以便在闪亮的应用程序中使用?是否有dplyr
解决方案?
答案 0 :(得分:1)
将data.frame
列为具有更多属性的列表,因此可以轻松地在两者之间进行转换。
res <- lapply(ADOs, data.frame)
测试用例:
tst <- list(as.list(mtcars), as.list(iris))
res <- lapply(tst, data.frame)