删除R中的索引级别

时间:2013-03-05 21:13:13

标签: r list

我有一堆结果存储为双向量列表的列表(使用optim函数从for循环尝试的不同参数列表)所以当我键入list时,元素显示如下:

[[1]]
        r         k     sigma 
 96.66667 328.66667 396.33333 
.
.
.
.

[[291]]
    r     k sigma 
 97.0 329.8 397.7 
.
.
.
etc

我希望能够访问命名值“r”“k”和“sigma”的最小值和最大值。 但RI无法使用$符号访问它们,或使用引号,因为R在lsit中的列表中将每个名称视为唯一,我尝试使用unlist但是将数据转换为1000长向量,而我我试过cbind,但都没有用。

我非常感谢任何人提供的任何帮助!

2 个答案:

答案 0 :(得分:4)

如果列表中的每个元素都是相同的大小(长度为3的向量),那么你可以这样做:

do.call(rbind, mylist)

其中mylist是输出对象列表。这将创建一个矩阵(或使用cbind代替rbind)。

抓住其中一件的另一个选择是:

sapply( mylist, `[`, "r" )

将从每个向量中获取“r”元素并将其简化为单个向量(如果可以)。将“r”替换为其他名称以获得其他名称。

答案 1 :(得分:3)

您可以通过以下方式将其转换为矩阵或数据框:

mtx <- do.call(rbind, object)

您可以按位置访问单个元素:

listname[[291]]   # should return 
   r     k sigma 
97.0 329.8 397.7