【发布时间】:2019-02-16 16:38:31
【问题描述】:
有很多关于索引列表的帖子,但我仍然无法完全理解命名和未命名嵌套列表的索引方法。这是我的例子
person <- list("name"="John","age"=19,"speaks"=c("English","French"))
Johns_brother <- list("name"="Sam","age"=20,"speaks"=c("English","Spanish"))
Johns_sister <- list("name"="Minerva","age"=17,"speaks"=c("English","Italian"))
Johns_sister <- list("name"="Minerva","age"=17,"speaks"=c("English","Italian"))
Johns_other_sister <- list("name"="Casandra","age"=23,"speaks"=c("English","Greek"))
person <- list("name"="John","age"=19,"speaks"=c("English","French"),"siblings"=list(Johns_brother,Johns_sister,Johns_other_sister))
这两种索引方法都返回列表
class(person$siblings[1])
class(person$siblings[[1]])
但只有第二个允许我选择命名元素
person$siblings[1]$name
person$siblings[[1]]$name
现在我看到一些帖子坚持(原文全部大写)“双括号永远不会返回列表。双括号将只返回列表中的一个元素”但这显然不是真的,因为两个索引方法返回列表。但是这两种形式的括号会返回不同的列表,对吧?这里的底层逻辑是什么?
【问题讨论】: