暇人の研究室

金融工学やR言語・統計学について書いてます。

<

【R言語】データフレームの操作に使う関数一覧

 

久しぶりRを触ったら、データフレームの操作が驚くほどできなくなっていたので改めてデータフレームの操作に使う関数を自分なりにまとめてみます。

 

> 〇〇<-read.csv("〇〇.csv")  ##csvの読みこんでオブジェクトに保存する

 

なんかread.csvでうまくcsvが取り込めないときはread.tableを使うのもアリ

 

>〇〇<-read.table("〇〇")

 

一応これがなんのデータかというとバンナムの株価データです。(bannamと名付けたオブジェクトに入れておきます)

 

まずヘッダーの名前が見にくいので変えます。名前を変えるにはnames()関数を使います。

 

>names(bannam)<-c("Open","High","Low","Close","Volume","adj_close")  ##ヘッダーの名前変更

f:id:oruka199665:20170331033301j:plain

 

特定の要素の取り出しは演算子[,]を使う

 

>bannam[1,4]

[1] 2981

 

他にも$演算子で取り出すことも可能。

 

> close<-bannam$close
> head(close)
[1] 2993 3080 3000 3050 3055 3075

 

・行数と列数を指定してデータを取り出す方法

 

> bannam[1:4,c(1,5)] ##1列目と5列目の1~4行目を取り出す。
   date  close
1 2016-11-11 2993
2 2016-11-10 3080
3 2016-11-09 3000
4 2016-11-08 3050

 

前半が「行」の指定、後半が「列」の指定をしている。1番目から4連目みたいな連番だと「:」で指定できるが、1番目と3番目だけなどの特定の番目を取り出したいときは「,」で指定しなければならない。

 

「行」と「列」がゲシュタルト崩壊しそうなときは、行列は縦横(行は↓、列は→)と覚えておくと、記憶に残りやすい。

 

・特定の行列の削除のやり方

 

>bannam[,-2]   ##2列目の削除

> bannam[,-2]

date high low close volume adj_close
1 2016-11-11 3105 2981 2993 1194800 2993
2 2016-11-10 3130 3060 3080 1496800 3080

 

>bannam[,c(-2,-4)]   ##2列目と4列目を削除

 

・特定の条件を満たす行の抽出

 

条件に当てはまる行のみを抽出する場合は、subset(オブジェクト名,条件式)を使う。

 

> subset(bannam, close>3050)   ##closeが3050以上を抽出する

 date    open high  low close volume  adj_close
2 2016-11-10 3120 3130 3060 3080 1496800  3080
5 2016-11-07 3100 3105 3055 3055 743700   3055
6 2016-11-04 3025 3080 3015 3075 1007200  3075
7 2016-11-02 3110 3110 3045 3055 796800   3055
8 2016-11-01 3155 3160 3125 3140 666000   3140

 

> summary(bannam)  ##データの要約

f:id:oruka199665:20170331034453j:plain