2017-08-14 18 views
5

を空のベクターを追加、私はリストに空のベクターを追加すると、それは事実ではないが以下のように、追加:R:リストにRで

a = list() 
a[[1]] = c() 
print(length(a)) 

length(a)は、この場合に0を印刷します2番目の行をa[[1]] = c(1)に変更すると、リストの長さは1になります。私の実装では、空のベクトルをリストに追加しても、リストの長さを変更する必要があります。それを行う方法はありますか?

+1

'a [[1]] = vector()'が行います。ユースケースに応じて、vectorのモードも指定する必要があります。 'c()'はNULLを返します。これはうまくいきません。 – dww

+0

最初から正しいサイズのリストを作成するほうが良いでしょう。 [第2の円](http://www.burns-stat.com)で終わらないように、 'a < - list(NULL)'または 'a < - vector(1、mode = 'list')' /pages/Tutor/R_inferno.pdf#chapter.2)。 – alistaire

答えて

3

vector()(論理)とcharacter()のようなものを使用すると、空のままにしたい要素に特定のクラスが割り当てられます。私はNULLクラスを使用します。 [[<-ではなく、[<-を使用してNULLリスト要素を割り当てることができます。

a <- list() 
a[1] <- list(NULL) 
a 
# [[1]] 
# NULL 
length(a) 
# [1] 1 
+1

OPは実際にはかなり近いです - 'a [1] = list(c())'も同じ結果を得るためにはうまくいくでしょう。 – thelatemail