55

Rでリストのリストを作成する方法がわかりません。複数のリストがあります。リストにアクセスしやすくするために、それらを1つのデータ構造に格納したいと思います。ただし、Rでリストのリストを使用できないように見えるため、別のリスト、たとえばl2からリストl1を取得すると、要素l1にアクセスできなくなります。どうすれば実装できますか?

編集-私は私のために機能しないものの例を示します:

list1 <- list()
list1[1] = 1
list1[2] = 2
list2 <- list()
list2[1] = 'a'
list2[2] = 'b'
list_all <- list(list1, list2)
a = list_all[1]
a[2]
#[[1]]
#NULL

しかしa、リストでなければなりません!

4

5 に答える 5

60

リストのリストを簡単に作成できます

list1 <- list(a = 2, b = 3)
list2 <- list(c = "a", d = "b")
mylist <- list(list1, list2)

mylist は、2 つのリストを含むリストになりました。list1 にアクセスするには、 を使用できますmylist[[1]]。次のようなことができるようにしたい場合は、次のようなことmylist$list1をする必要があります

mylist <- list(list1 = list1, list2 = list2)
# Now you can do the following
mylist$list1

編集: あなたの編集に返信します。二重括弧のインデックスを使用するだけです

a <- list_all[[1]]
a[[1]]
#[1] 1
a[[2]]
#[1] 2
于 2012-05-27T19:55:24.190 に答える
10

あなたの例を使用して::

list1 <- list()
list1[1] = 1
list1[2] = 2
list2 <- list()
list2[1] = 'a'
list2[2] = 'b'
list_all <- list(list1, list2)

リストの要素を取得するには、'[[' を使用します。

b = list_all[[1]]
 b
[[1]]
[1] 1

[[2]]
[1] 2

class(b)
[1] "list"
于 2012-05-27T19:54:39.590 に答える
8

listのを保持しようとしている場合(のlistと同様)、これは機能する可能性があります。pythonlist.append()

a <- list(1,2,3)
b <- list(4,5,6)
c <- append(list(a), list(b))

> c
[[1]]
[[1]][[1]]
[1] 1

[[1]][[2]]
[1] 2

[[1]][[3]]
[1] 3


[[2]]
[[2]][[1]]
[1] 4

[[2]][[2]]
[1] 5

[[2]][[3]]
[1] 6
于 2016-07-18T20:55:40.383 に答える