0

R でリストを使用するのは難しいようです。名前の最初の部分が同じリスト要素を参照することはあいまいであることを知りませんでした。

opts = list()
opts$value = NULL
opts$valueDefault = c(1,2,3)

print(opts)                # note: displaying the whole list does not reveal 
                           # the element "value"
$valueDefault
[1] 1 2 3 



print(opts$value)          # with this notation I do not get the correct (intended) 
                           # result
[1] 1 2 3

print(opts[["value"]])     # with this notation I do
NULL
4

2 に答える 2

3

リスト要素を NULL に設定することは、リストから要素を削除することと同じであることに注意してください。その時点でのリストには、文字通り、valueDefault という 1 つの要素しか含まれていません。違いを確認するには、代わりに値を NA に設定してみてください。

読み?"$"進めると、これに関する詳細情報が得られます。$簡単にまとめると、viaと viaの参照の違いの 1 つ[[は、$部分一致を行うことです。したがって、リストには valueDefault のみが含まれopts$valueており、valueDefault を参照している必要があることに気付いたと言っていました。opts[["value"]]部分一致を試みません (デフォルト)

于 2013-09-02T16:42:08.007 に答える
1

リスト要素を にしたい場合は、NULLでリストを作成する必要がありますNULL

opts <- list(value = NULL)

> opts
$value
NULL
于 2013-09-02T16:42:34.983 に答える