gpt4 book ai didi

r - 将向量添加到列表的组成部分

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

我有以下列表:

A <- c(11)
B <- c(7, 13)
C <- c(1, 10, 11, 12)
my_list <- list(A, B, C)
> my_list
[[1]]
[1] 11

[[2]]
[1] 7 13

[[3]]
[1] 1 10 11 12

我想将 -2、-1、0、1 和 2 添加到此列表中的每个数字,并保留每个列表元素中的所有唯一值,以获得以下结果列表:

> my_new_list
[[1]]
[1] 9 10 11 12 13

[[2]]
[1] 5 6 7 8 9 11 12 13 14 15

[[3]]
[1] -1 0 1 2 3 8 9 10 11 12 13 14

我尝试了以下代码,但没有得到我希望的结果:

my_new_list <- lapply(res, `+`, -2:2)
> my_new_list
$`1`
[1] 9 10 11 12 13

$`2`
[1] 5 12 7 14 9

$`3`
[1] -1 9 11 13 3

为什么会发生这种情况,我怎样才能获得我想要的结果?谢谢!

最佳答案

假设我们需要唯一

lapply(my_list, function(x) sort(unique(unlist(lapply(x, `+`, -2:2)))))

或与外部

lapply(my_list, function(x) sort(unique(c(outer(x, -2:2, `+`)))))

或者使用rep和回收

lapply(my_list, function(x) sort(unique(rep(-2:2, each = length(x)) + x)))
#[[1]]
# [1] 9 10 11 12 13

#[[2]]
# [1] 5 6 7 8 9 11 12 13 14 15

#[[3]]
# [1] -1 0 1 2 3 8 9 10 11 12 13 14

关于r - 将向量添加到列表的组成部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52933236/

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