- 
目次(まとめ)
- ◾️ Rでデータフレームを作る方法
- ◾️ マイナス記号を使って、指定した行や列を削除する
 
Rで作ったデータフレームから指定した行や列を削除したいです。
行や列の削除は、マイナス記号を使うことで実現することができます。
今回の記事では、データフレームの作り方から、指定した行や列の情報を削除する方法を紹介します。
 
Rでデータフレームを作る方法
例えば、以下のように、5人について、数学(Math)、英語(English)、科学(Science)のテストの点数をまとめた表があるとします。
| Name | Math | English | Science | 
| Yamada | 46 | 75 | 80 | 
| Tanaka | 34 | 90 | 50 | 
| Kawashita | 90 | 54 | 43 | 
| Nakayama | 54 | 65 | 90 | 
| Abe | 35 | 40 | 30 | 
このようなデータを、データフレームとして保存するためには、以下のように実行します。
> name <- c("Yamada", "Tanaka", "Kawashita", "Nakayama", "Abe")
> math <- c(46, 34, 90, 54, 35)
> english <- c(75, 90, 54, 65, 40)
> science <- c(80, 50, 43, 90, 30)
> 
> data <- data.frame(name, math, english, science)データフレームである "data" を表示すると、以下のように出力されます。
> data
       name math english science
1    Yamada   46      75      80
2    Tanaka   34      90      50
3 Kawashita   90      54      43
4  Nakayama   54      65      90
5       Abe   35      40      30また、列の名前を指定したい場合には、以下のように "names" 関数を使うことで指定することができます。
> names(data) <- c("Name", "Math", "English", "Science")
> data
       Name Math English Science
1    Yamada   46      75      80
2    Tanaka   34      90      50
3 Kawashita   90      54      43
4  Nakayama   54      65      90
5       Abe   35      40      30ここでは、ベクトル形式 "c(...)" でデータを与えましたが、ファイルを読み込んでデータを与えることもできます。詳しくは、こちらの記事をご参照ください。
マイナス記号を使って、指定した行や列を削除する
いま、5人のテストの点数の中で、数学(Math)の点数の列を削除することを考えます。
数学の列は、データフレームの中で、2列目にあるので、以下のように実行して、数学の列を削除することができます。
> data[,-2]
       Name English Science
1    Yamada      75      80
2    Tanaka      90      50
3 Kawashita      54      43
4  Nakayama      65      90
5       Abe      40      30"data" はデータフレームになっていて、"[行番号, 列番号]" を指定することができますが、列番号の方に、マイナス記号 "-" をつけることで、指定した列を削除することができます。
同じように、行の削除は行番号の方に、マイナス記号 "-" をつけることで、指定した行を削除することができます。
例えば、Yamadaさんの行(1行目)を削除する場合には、以下のように実行します。
> data[-1,]
       Name Math English Science
2    Tanaka   34      90      50
3 Kawashita   90      54      43
4  Nakayama   54      65      90
5       Abe   35      40      30今回の記事では、Rの中で定義したデータフレームで、指定した行や列の情報を削除する方法を紹介しました。マイナス記号をつけるだけでいいので簡単ですね。

