gpt4 book ai didi

r - 添加 NA 以使所有列表元素等长

转载 作者:行者123 更新时间:2023-12-04 01:36:19 26 4
gpt4 key购买 nike

我在 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

想知道我是否错过了更快/更优雅的东西。

最佳答案

你可以使用

lapply(lolz, `length<-`, max(lengths(lolz)))
# $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

或者
n <- max(lengths(lolz))
lapply(lolz, `length<-`, n)

关于r - 添加 NA 以使所有列表元素等长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34570860/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com