我有以下列表:
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
为什么会这样,我如何获得想要的结果?谢谢!
答案 0 :(得分:3)
假设我们需要PGPASSWORD=password;
pg_restore --host "hostname" --port "port" --username "postgres" --no-password --verbose --dbname "dbname" --schema "schema" "dump_filename";
值
unique
或使用lapply(my_list, function(x) sort(unique(unlist(lapply(x, `+`, -2:2)))))
outer
或使用lapply(my_list, function(x) sort(unique(c(outer(x, -2:2, `+`)))))
并重新设置
rep
答案 1 :(得分:2)
如何?
my_new_list <- lapply(my_list, function(x) unique(union(x,sapply(x, function(y) y +c(-2:2)) )))
my_new_list <- lapply(my_new_list, sort)
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