如何在 R 中訪問巢狀列表元素?


有時,列表包含在另一個列表中,但我們要訪問巢狀的列表的元素。由於這些元素是某個列表的一部分,因此無法直接訪問,首先我們需要訪問更寬廣的列表,然後訪問包含該元素的列表才能獲得實際元素。

示例

設想列表 x1、x2、x3、x4 和 x4,以及包含這些列表的 Total_List −

> x1<-c(list(1:5),list(6:10),list(11:15))
> x2<-c(list(letters[1:5]),list(letters[6:10], list(letters[11:15])))
> x3<-c(list(c("India","Australia"),list("Canada"),list(c("Russia","Malaysia"))))
> x4<-c(list("Europe"),list(c("Asia","America"),list(c("Africa","Antartica"))))
> x5<-c(list("Red"),list("Green"),list("Yellow"),list(c("White","Pink")))
> Total_Lists<-list(x1,x2,x3,x4,x5)

列印 Total_Lists −

> Total_Lists
[[1]]
[[1]][[1]]
[1] 1 2 3 4 5
[[1]][[2]]
[1] 6 7 8 9 10
[[1]][[3]]
[1] 11 12 13 14 15
[[2]]
[[2]][[1]]
[1] "a" "b" "c" "d" "e"
[[2]][[2]]
[1] "f" "g" "h" "i" "j"
[[2]][[3]]
[[2]][[3]][[1]]
[1] "k" "l" "m" "n" "o"
[[3]]
[[3]][[1]]
[1] "India" "Australia"
[[3]][[2]]
[[3]][[2]][[1]]
[1] "Canada"
[[3]][[3]]
[[3]][[3]][[1]]
[1] "Russia" "Malaysia"
[[4]]
[[4]][[1]]
[1] "Europe"
[[4]][[2]]
[1] "Asia" "America"
[[4]][[3]]
[[4]][[3]][[1]]
[1] "Africa" "Antartica"
[[5]]
[[5]][[1]]
[1] "Red"
[[5]][[2]]
[1] "Green"
[[5]][[3]]
[1] "Yellow"
[[5]][[4]]
[1] "White" "Pink"

現在,要訪問 x1、x2、x3、x4 和 x4 中的第一個元素,我們可以使用以下程式碼 −

> lapply(Total_Lists,'[[',1)
[[1]]
[1] 1 2 3 4 5
[[2]]
[1] "a" "b" "c" "d" "e"
[[3]]
[1] "India" "Australia"
[[4]]
[1] "Europe"
[[5]]
[1] "Red"

類似地,要訪問 x1、x2、x3、x4 和 x4 中的第三個元素,我們只需將 1 更改為 3,如下所示 −

> lapply(Total_Lists,'[[',3)
[[1]]
[1] 11 12 13 14 15
[[2]]
[[2]][[1]]
[1] "k" "l" "m" "n" "o"
[[3]]
[[3]][[1]]
[1] "Russia" "Malaysia"
[[4]]
[[4]][[1]]
[1] "Africa" "Antartica"
[[5]]
[1] "Yellow"

更新於:2020-08-10

已檢視 3 千+

開啟你的 職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.