将列表逐元素附加到 R 中嵌套列表的元素
append a list element-wise to elements of a nested list in R
我是 R 的新手,仍在努力了解 apply 系列而不是使用循环。
我有两个列表,一个是嵌套的,另一个不是,都是由字符组成的:
>lst1 <- list(c("ABC", "DEF", "GHI"), c("JKL", "MNO", "PQR"))
>lst2 <- c("abc", "def")
我想创建第三个列表,以便将 lst2 的每个元素附加为 lst1 中相应子列表的最后一个元素。所需的输出如下所示:
>lst3
[[1]]
[1] "ABC" "DEF" "GHI" "abc"
[[2]]
[1] "JKL" "MNO" "PQR" "def"
到目前为止,我在 R 中的经验告诉我,可能有一种方法可以在不显式编写循环的情况下执行此操作。
lapply
不会满足您的需求。您可以使用带有 append
的循环来执行此操作:
list1 <- list(c("ABC","DEF","GHI"),c("JKL","MNO","PQR"))
list2 <- c("abc","def")
listcomplete <- list(c("ABC","DEF","GHI","abc"),c("JKL","MNO","PQR","def"))
for (i in 1:length(list2)) {
list1[[i]] <- append(list1[[i]],list2[i])
}
结果:
> list1
[[1]]
[1] "ABC" "DEF" "GHI" "abc"
[[2]]
[1] "JKL" "MNO" "PQR" "def"
如果您在 lst1
向量的长度上应用您的函数,您绝对可以使用 lapply
。这有效:
lapply(1:length(lst1),function(i) append(lst1[[i]],lst2[[i]]))
[[1]]
[1] "ABC" "DEF" "GHI" "abc"
[[2]]
[1] "JKL" "MNO" "PQR" "def"
您可以使用 Map
,它的作用与 mapply(..., simplify = F)
完全相同:
Map(c, lst1, lst2)
[[1]]
[1] "ABC" "DEF" "GHI" "abc"
[[2]]
[1] "JKL" "MNO" "PQR" "def"
我是 R 的新手,仍在努力了解 apply 系列而不是使用循环。
我有两个列表,一个是嵌套的,另一个不是,都是由字符组成的:
>lst1 <- list(c("ABC", "DEF", "GHI"), c("JKL", "MNO", "PQR"))
>lst2 <- c("abc", "def")
我想创建第三个列表,以便将 lst2 的每个元素附加为 lst1 中相应子列表的最后一个元素。所需的输出如下所示:
>lst3
[[1]]
[1] "ABC" "DEF" "GHI" "abc"
[[2]]
[1] "JKL" "MNO" "PQR" "def"
到目前为止,我在 R 中的经验告诉我,可能有一种方法可以在不显式编写循环的情况下执行此操作。
lapply
不会满足您的需求。您可以使用带有 append
的循环来执行此操作:
list1 <- list(c("ABC","DEF","GHI"),c("JKL","MNO","PQR"))
list2 <- c("abc","def")
listcomplete <- list(c("ABC","DEF","GHI","abc"),c("JKL","MNO","PQR","def"))
for (i in 1:length(list2)) {
list1[[i]] <- append(list1[[i]],list2[i])
}
结果:
> list1
[[1]]
[1] "ABC" "DEF" "GHI" "abc"
[[2]]
[1] "JKL" "MNO" "PQR" "def"
如果您在 lst1
向量的长度上应用您的函数,您绝对可以使用 lapply
。这有效:
lapply(1:length(lst1),function(i) append(lst1[[i]],lst2[[i]]))
[[1]]
[1] "ABC" "DEF" "GHI" "abc"
[[2]]
[1] "JKL" "MNO" "PQR" "def"
您可以使用 Map
,它的作用与 mapply(..., simplify = F)
完全相同:
Map(c, lst1, lst2)
[[1]]
[1] "ABC" "DEF" "GHI" "abc"
[[2]]
[1] "JKL" "MNO" "PQR" "def"