Rでリストを正しく使用する方法
簡単な背景:広く使われている多くの(ほとんど?)現代のプログラミング言語には、少なくとも少数のADT [抽象データ型]が共通してあり、特に、 文字列(文字で構成されるシーケンス) リスト(値の順序付けられたコレクション)、および マップベースのタイプ(キーを値にマップする順序付けされていない配列) Rプログラミング言語では、最初の2つはそれぞれcharacterととして実装されvectorます。 私がRを学び始めたとき、2つのことはほぼ最初から明らかでした:listRで最も重要なデータ型(これはRの親クラスであるためdata.frame)、そして次に、少なくともそれらがどのように機能するか理解できませんでした私のコードでそれらを正しく使用するには十分ではありません。 1つには、Rのlistデータ型はマップADT(dictionaryPython、NSMutableDictionaryObjective C、hashPerlおよびRuby、object literalJavascriptなど)の単純な実装であるように思えました。 たとえば、Pythonの辞書と同じように、キーと値のペアをコンストラクタに渡すことで作成します(Pythonではこれはdictできませんlist)。 x = list("ev1"=10, "ev2"=15, "rv"="Group 1") そして、R辞書の項目には、Python辞書の項目と同じようにアクセスしますx['ev1']。同様に、「キー」または「値」のみを取得できます。 names(x) # fetch just the 'keys' of an R list # [1] "ev1" "ev2" "rv" unlist(x) # fetch just the 'values' of an R list # ev1 ev2 rv # "10" "15" …