[英]Create tibble from list elements in R
因此,我有了这个列表列表,并且在每个列表中,我都有一些元素,这些元素是长度相等的向量,并且在一个元素中具有单个值。 我想创建矢量的小标题,并将小标题存储在列表中。
> neighbours
$p1
$p1$course_names
[1] "X1" "X2" "X3"
$p1$course_capacities
[1] 1 1 1
$p1[[2]]
[1] 4.123106
$p2
$p2$course_names
[1] "X1" "X2" "X3"
$p2$course_capacities
[1] 1 1 1
$p2[[2]]
[1] 4.123106
最终输出应如下所示:
> neighbours
[[1]]
[[1]][[1]]
# A tibble: 10 x 4
course_names course_capacities
<chr> <dbl>
1 X1 1.00
2 X2 1.00
3 X3 1.00
[[1]][[2]]
[1] 4.123106
[[2]]
[[1]][[1]]
# A tibble: 10 x 4
course_names course_capacities
<chr> <dbl>
1 X1 1.00
2 X2 1.00
3 X3 1.00
[[2]][[2]]
[1] 4.123106
我想我希望使用tidyverse解决方案,因为我正在寻找小标题。 当然,我很乐意考虑任何方法。
它的结构不是很好,但是有两种方法。 首先,我尝试重新创建您的初始列表:
neighbours <- list(p1 = list(
list(course_names = c("X1","X2","X3"),
course_capabilities = c(1,1,1)),
4.123106
),
p2 = list(
list(course_names = c("X1","X2","X3"),
course_capabilities = c(1,1,1)),
4.123106
)
)
然后使用lapply()或purrr :: map()
neighbours %>% purrr::map(~list(as_tibble(.[[1]]),.[[2]]))
要么
lapply(neighbours, function(p){
list(as_tibble(p[[1]]),
p[[2]])
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.