我正在做一系列的事情dplyr
, tidyr
,因此如果可能的话希望保留管道解决方案。
我有一个列表,每个组件中的元素数量不均匀:
lolz <- list(a = c(2,4,5,2,3), b = c(3,3,2), c=c(1,1,2,4,5,3,3), d=c(1,2,3,1), e=c(5,4,2,2))
lolz
$a
[1] 2 4 5 2 3
$b
[1] 3 3 2
$c
[1] 1 1 2 4 5 3 3
$d
[1] 1 2 3 1
$e
[1] 5 4 2 2
我想知道是否有一个简洁的衬垫来用 NA 填充每个元素,以便它们都与具有最大项目的元素具有相同的长度:
我有 2 班轮:
lolz %>% lapply(length) %>% unlist %>% max -> mymax
lolz %>% lapply(function(x) c(x, rep(NA, mymax-length(x))))
$a
[1] 2 4 5 2 3 NA NA
$b
[1] 3 3 2 NA NA NA NA
$c
[1] 1 1 2 4 5 3 3
$d
[1] 1 2 3 1 NA NA NA
$e
[1] 5 4 2 2 NA NA NA
想知道我是否错过了一些更快/更优雅的东西。