gpt4 book ai didi

r - 均衡列表中所有列表的长度?

转载 作者:行者123 更新时间:2023-12-04 05:46:18 24 4
gpt4 key购买 nike

我有一个列表列表,我希望子列表都具有相同的长度

即用 NA 填充它们s 如果需要,以便它们都达到最长列表的长度。

模拟示例

list1 <- list(1, 2, 3)
list2 <- list(1, 2, 3, 4, 5)
list3 <- list(1, 2, 3, 4, 5, 6)

list_lists <- list(list1, list2, list3)

我最好的尝试
max_length <- max(unlist(lapply (list_lists, FUN = length))) 
# returns the length of the longest list

list_lists <- lapply (list_lists, function (x) length (x) <- max_length)

问题,它将我所有的子列表替换为整数 = max_length ...
list_lists [[1]]
> [1] 6

有人可以帮忙吗?

最佳答案

这是您的代码修复。
该函数应该返回 x ,不是 length(x) .
另外,为了清楚起见,我使用了向量,而不是列表。

list1 <- c(1, 2, 3)
list2 <- c(1, 2, 3, 4, 5)
list3 <- c(1, 2, 3, 4, 5, 6)

list_lists <- list(list1, list2, list3)

max_length <- max(unlist(lapply (list_lists, FUN = length)))

list_lists <- lapply (list_lists, function (x) {length (x) <- max_length;x})

# [[1]]
# [1] 1 2 3 NA NA NA
#
# [[2]]
# [1] 1 2 3 4 5 NA
#
# [[3]]
# [1] 1 2 3 4 5 6

对于原始列表,结果是:
# [[1]]
# [[1]][[1]]
# [1] 1
#
# [[1]][[2]]
# [1] 2
#
# [[1]][[3]]
# [1] 3
#
# [[1]][[4]]
# NULL
#
# [[1]][[5]]
# NULL
#
# [[1]][[6]]
# NULL
#
#
# [[2]]
# [[2]][[1]]
# [1] 1
#
# [[2]][[2]]
# [1] 2
#
# [[2]][[3]]
# [1] 3
#
# [[2]][[4]]
# [1] 4
#
# [[2]][[5]]
# [1] 5
#
# [[2]][[6]]
# NULL
#
#
# [[3]]
# [[3]][[1]]
# [1] 1
#
# [[3]][[2]]
# [1] 2
#
# [[3]][[3]]
# [1] 3
#
# [[3]][[4]]
# [1] 4
#
# [[3]][[5]]
# [1] 5
#
# [[3]][[6]]
# [1] 6

关于r - 均衡列表中所有列表的长度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43415577/

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