ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

Rをまじめに勉強する-その6:選択、射影、結合

2013-06-25 15:13:32 | AI・BigData
前回の続き

統計解析フリーソフト R の備忘録頁 ver.3.1
http://cse.naro.affrc.go.jp/takezawa/r-tips/r.html



Rで統計 - R入門
http://home.hiroshima-u.ac.jp/chubo/index.cgi?R%a4%c7%c5%fd%b7%d7

をもとに、Rを勉強してみる。

もう、順番めちゃくちゃになってきたけど、今回はデータ操作。
RDBなんかだと、選択、射影、結合ができる

選択とは
  条件にあった「行」のみ取り出すこと

射影とは
  自分が見たい「列」だけ取り出すこと

結合は
  2つにテーブルを連結すること(列をつなげる)

今回は、この操作について、行いたい。




■選択

 行を選択するには、subsetを使います。

 subset(データ,条件式)

例:subset(CO2,Type=="Quebec")

(もっと続いているけど、省略)




■射影

3とおりあります。

1.桁が連続しているとき
  データ[開始桁:終了桁]

 例:CO2[2:4]

2.桁が離れているとき:その1
  data.frame(桁1,桁2,桁3・・・)

 例:data.frame(CO2$Type,CO2$Plant,CO2$conc,CO2$uptake)
  (桁の順番を変えてもOK)

3.桁が離れているとき:その2
  subset(データ,条件式,select=c(桁1,桁2,・・・))
 ※条件式にTRUEをいれれば、全ての場合ということになり、
  結局、射影(select部分の処理)をしていることになる。

  例:subset(CO2,TRUE,select=c(Type,conc,uptake,Plant))




■結合
ようするにJOIN
  データ1が、売上テーブル(項目:販売日時、商品コードなど)
  データ2が、商品テーブル(項目:商品コード、商品名など)
のとき、データ1の商品コードと、データ2の商品コードを連結させて
 (一致するレコードを結び付けて)
売上レコードに、商品名を結び付けたいような場合につかう

marge(データ1,データ2,by.x="データ1の結合桁名",by.y="データ2の結合桁名")

例:
今、data1に(id,Plant,Type,Treatment,conc,uptake)、
  data2に(id,name)
が入っていて、data1のTypeと、data2のidを連結させて、data2の名前を取得したい場合

merge(data1,data2,by.x="Type",by.y="id")




subsetは結局subset(データ,条件式,select=c(項目・・・))なので、
SQLのSELECTの項目名を並べるところと、WHERE句にほぼ相当する。

また、mergeでJOINを行う。

なので、この2つだけを知っていれば、SQLに相当する操作はできる。

この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« グーグルの従業員からホーム... | トップ | RでFizzBuzz »
最新の画像もっと見る

AI・BigData」カテゴリの最新記事