gpt4 book ai didi

r - 如何访问 R 中的部分列表

转载 作者:行者123 更新时间:2023-12-04 11:30:19 25 4
gpt4 key购买 nike

我在 r 中得到了 optim 函数,它返回了一个像这样的列表:

[[354]]
r k sigma
389.4 354.0 354.0

但是当我尝试访问 say list$sigma 时,它不存在返回 NULL。

我试过附加,我试过名字,我试过将它分配给一个矩阵,但这些东西都不起作用
任何人都知道如何访问列表中 sigma r 或 k 的最低或最高值?

非常感谢!!

str 给了我这个输出:
List of 354
$ : Named num [1:3] -55.25 2.99 119.37
..- attr(*, "names")= chr [1:3] "r" "k" "sigma"
$ : Named num [1:3] -53.91 4.21 119.71
..- attr(*, "names")= chr [1:3] "r" "k" "sigma"
$ : Named num [1:3] -41.7 14.6 119.2

所以我在列表中的列表中有一个双倍(?)

最佳答案

关键问题是你有一个列表 (或一个 data.frames 列表,它实际上也是一个列表)。
要确认这一点,请查看 is(list[[354]])

解决方案只是添加额外的索引级别。下面您有多种实现方法。

您可以使用向量作为 [[ 的索引,例如,如果您想访问第 354 个元素中的第三个元素,您可以使用

 myList[[ c(354, 3) ]]

您也可以使用字符 indecies,但是,所有嵌套级别都必须具有命名 indecies。
names(myList) <- as.character(1:length(myList))
myList[[ c("5", "sigma") ]]

最后,请尽量避免使用 listdatadf 等名称。这将导致代码崩溃和错误,这些错误看起来无法解释和神秘,直到人们意识到他们试图对函数进行子集化

编辑:

在上面的评论中回答您的问题:如果您想查看对象的结构(即对象的“构成”),请使用 str
> str(myList)
List of 5
$ :'data.frame': 1 obs. of 3 variables:
..$ a : num 0.654
..$ b : num -0.0823
..$ sigma: num -31
$ :'data.frame': 1 obs. of 3 variables:
..$ a : num -0.656
..$ b : num -0.167
..$ sigma: num -49
$ :'data.frame': 1 obs. of 3 variables:
..$ a : num 0.154
..$ b : num 0.522
..$ sigma: num -89
$ :'data.frame': 1 obs. of 3 variables:
..$ a : num 0.676
..$ b : num 0.595
..$ sigma: num 145
$ :'data.frame': 1 obs. of 3 variables:
..$ a : num -0.75
..$ b : num 0.772
..$ sigma: num 6

关于r - 如何访问 R 中的部分列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15190329/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com