logo

Rでリストを参照するさまざまな方法 📂R

Rでリストを参照するさまざまな方法

概要

Rはデータを扱うために本当に優れた機能を数多く提供するが、その中でもリストはRを使いたくさせる最大の理由の一つである。Pythonをはじめとする他の言語にもリストというデータ型自体は多く実装されているが、Rほどデータを扱いやすく直感的に実装されてはいない。リストをうまく扱えるようになると、他のプログラミング言語ではやや複雑で面倒なコーディングもとても簡単に行えるようになる。

20190604\_161445.png

上のように三つのシーケンスが一つのリストに属している状況を考えてみよう。基本的にデータを開いてみたときに$があれば、데이터$이름のように参照するのが正しい。しかし名前が長すぎて全部入力するのが面倒な場合、あるいはコードが複雑になったり繰り返し作業が必要な場合、これをいちいち書いてはいられない。

20190604\_161526.png 幸いなことに、リストはデータの名前が決められていても、依然としてその順序どおりに番号が割り当てられる。したがって上のようにただ数字で参照してもよい。

20190604\_161541.png 数字で参照できるということは、すなわち変数でも参照できるということである。上のように繰り返し文を書いてもちゃんと動くことが確認できる。

一方、繰り返し文は繰り返し文でも、数字ではなく変数名で扱ったほうが便利なときもある。たとえば気象データを種類が40種あるリストとして作ったが、その中で「温度」と「湿度」だけを除外する場合が挙げられる。このようなときは文字列のインデックスを作って処理する技巧がよく使われる。幸いなことに、リストは데이터$이름데이터$"이름"のどちらも同じように受け入れるので、これによって柔軟なコード作成が可能になる。実は、それだけでなく데이터[[이름]]も可能である。$記号はリストでなくてもデータフレームなどで使われることがあるので、複雑なデータを扱うなら混同しないようにリストにのみ使う記号である[[]]だけを使うことを推奨する。

20190604\_161733.png

コード

sequence<-list(arithmetic=1:10,
               geometric=2^(1:10),
               alternative=1:10*rep(c(1,-1),5))
sequence
 
sequence$geometric
seqence[[2]]
 
for(i in 1:3){
  print(sum(sequence[[i]]))
}
 
sequence$"arithmetic"
for(i in c("arithmetic","alternative")){
  print(sequence[[i]])
}