【问题标题】:R: list containing listsR:包含列表的列表
【发布时间】:2012-01-18 23:00:27
【问题描述】:

我想问一下是否有人能找出第二个构造中的错误,因为没有收到与第一个构造中相同的列表。有没有办法引用列表元素的 name ?例如 somefunction(myList[[1]])==a1 ?

# construction #1
myList <- list(a1 = list(a2 = list("a21", "a22")), b1 = list("b1", "b2"))

# construction #2
myList                  <- list()
myList[[1]]             <- list(a1=list())
myList[[1]][[1]]        <- list(a2=list())
myList[[1]][[1]][[1]]   <- "a21"
myList[[1]][[1]][[2]]   <- "a22"
myList[[2]]             <- list(b1=list())
myList[[2]][[1]]        <- "b1"
myList[[2]][[2]]        <- "b2"

非常感谢您

【问题讨论】:

    标签: r


    【解决方案1】:

    让我们简化一下,只看第一行:

    myList <- list(a1 = "anything")
    # vs
    myList <- list()
    myList[[1]] <- list(a1="anything")
    

    在第一个构造中,顶部列表的插槽 1 被命名为“a1”并且包含“anything”。在第二个构造中,顶部列表的槽 1 没有命名,包含一个列表,其第一个槽名为“a1”并包含“任何东西”。

    要使它们相似,请尝试:

    myList <- list()
    myList[["a1"]] <- "anything"
    

    【讨论】:

    • 有没有办法获得名称“a1”而不是内容?
    • 要获取名称,只需使用names(myList)。对于列表中包含的列表的名称,只需先提取该列表(例如 names(myList[[1]]) )。
    • 我想知道如何创建一个列表字典,感谢您的回答,终于得到了它,所以谢谢;)
    猜你喜欢
    • 2021-10-30
    • 1970-01-01
    • 2018-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-13
    • 1970-01-01
    相关资源
    最近更新 更多