目次(まとめ)

  • ◾️ Rでデータフレームを作る方法

  • ◾️ rbind関数を使って、新たな行データを追加する

  • ◾️ cbind関数を使って、新たな列データを追加する


Rで作ったデータフレームに追加したいデータがあります。どうやったらデータフレームに行や列の追加ができますか?

行の追加であれば "rbind"、列の追加であれば "cbind" という関数を使うことができます。

今回の記事では、データフレームの作り方から、行や列を追加する方法を紹介します。

Rでデータフレームを作る方法

例えば、以下のように、5人について、数学(Math)、英語(English)、科学(Science)のテストの点数をまとめた表があるとします。

NameMathEnglishScience
Yamada467580
Tanaka349050
Kawashita905443
Nakayama546590
Abe354030

このようなデータを、データフレームとして保存するためには、以下のように実行します。

> 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(...)" でデータを与えましたが、ファイルを読み込んでデータを与えることもできます。詳しくは、こちらの記事をご参照ください。

rbind関数を使って、新たな行データを追加する

いま、6人目(Yamashitaさん)のデータとして、以下のようなデータフレームが与えられているとします。

> name <- "Yamashita"
> math <- "50"
> english <- "30"
> science <- "60"
>
> add_data <- data.frame(name, math, english, science)
> names(add_data) <- c("Name", "Math", "English", "Science")
>
> add_data
       Name Math English Science
1 Yamashita   50      30      60

これを、他の5人のデータからなるデータフレーム "data" に追加するためには、以下のように実行します。

> data <- rbind(data, add_data)

"rbind" とは、"row"+"bind" で、行を結合するための関数になっています。

データフレームである "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
6 Yamashita   50      30      60     <----- 追加されたデータ

cbind関数を使って、新たな列データを追加する

いま、社会(Society)のデータとして、以下のようなデータフレームが与えられているとします。

> society <- c(43, 56, 21, 54, 43, 90)
>
> add_data_2 <- data.frame(society)
> names(add_data_2) <- c("Society")
>
> add_data_2
  Society
1      43
2      56
3      21
4      54
5      43
6      90

これを、他の科目のデータからなるデータフレーム "data" に追加するためには、以下のように実行します。

> data <- cbind(data, add_data_2)

"cbind" とは、"column"+"bind" で、列を結合するための関数になっています。

データフレームである "data" を表示すると、以下のように出力されます。

> data
       Name Math English Science Society
1    Yamada   46      75      80      43
2    Tanaka   34      90      50      56
3 Kawashita   90      54      43      21
4  Nakayama   54      65      90      54
5       Abe   35      40      30      43
6 Yamashita   50      30      60      90

今回の記事では、Rの中で定義したデータフレームに、列データや行データを追加する方法を紹介しました。データフレームの扱いになれると、データ解析の幅が広がるので、慣れていきましょう。

B!