0

次の要素で構成されるリスト l があります。

> l
$quad_freqs
            [,1]        [,2]       [,3]       [,4]       [,5]      [,6]
sol 0.0002308597 0.004155474 0.00623358 0.02493248 0.02576132 0.0748037
          [,7]      [,8]       [,9]     [,10]     [,11]
sol 0.02493029 0.2318451 0.05612928 0.3593334 0.1916445

入力したので、lがリストであることは知っています

> class(l)
[1] "list"

ただし、リストの要素を取得できません。例えば、

> l[[1]]
            [,1]        [,2]       [,3]       [,4]       [,5]      [,6]
sol 0.0002308597 0.004155474 0.00623358 0.02493248 0.02576132 0.0748037
          [,7]      [,8]       [,9]     [,10]     [,11]
sol 0.02493029 0.2318451 0.05612928 0.3593334 0.1916445
> l[[2]]
Error in l[[2]] : subscript out of bounds
> l[[0]]
Error in l[[0]] : attempt to select less than one element

一重括弧演算子も試しましたが、うまくいきませんでした:

> l[2]
$<NA>
NULL

> l[0]
named list()

リストの要素を取得するにはどうすればよいですか?

Rを使うのはこれが初めてなので、これがばかげた質問であれば申し訳ありません。

4

1 に答える 1

3

印刷される方法から、l最初の(唯一の)要素が1行の行列である1要素リストのように見えます。このようなもの:

l <- list(quadreps=matrix(rnorm(5), nrow=1))
l
# $quadreps
#           [,1]       [,2]      [,3]      [,4]      [,5]
# [1,] 0.5060329 -0.6333043 0.6637485 0.7293132 -1.330237

行列の要素アクセスするには、まず$またはを使用してリストから抽出し[[]]、さらにサブセット化する必要があります。quadrepたとえば、 の 3 列目の要素を抽出するには、次のいずれかを使用します。

l$quadreps[1,3]
# [1] -0.9604139

l[["quadreps"]][1,3]
# [1] -0.9604139

l[[1]][1,3]
# [1] -0.9604139
于 2013-09-24T18:45:45.623 に答える