R logo

データフレーム (data frame) の作り方色々。

データフレーム (Data Frame) とは

データフレームは list の2次元バージョン。

データサイエンスで最も多く使用される。

データフレームにはここのベクトルをまとめて2次元の表にする。

ここの vector は表の中の "列" になる。

それぞれの列は異なる型のデータを格納できるが、同じ列内は vector の性質を受け継ぐので、全てのセルが同じデータ型となる。

Data Frame

データフレームを作る:data.frameで作る

data frameの作成には、R内蔵関数のdata.frame()で作ったり、{tidyverse}パッケージのtibble()で作ったりする。

data.frame()は、Rの標準パッケージなので、新たにパッケージを読み込んでおく必要はない。でも、後述のtibble()で作ったほうが汎用性が高いので好まれる。

ベクターをつなげて作る

直接入れ込む

data.frame(列名1=内容1, 列名2=内容2, 列名3=内容3, ...)

というように、各列のベクターをつなげて作る。

df <- data.frame(
Apple=c(1,2,3),
Banana=c(4,5,6)
)
dataframe-1

行名はrownames()で追加する。

df <- data.frame(
        Apple=c(1,2,3),
        Banana=c(4,5,6)
        )
rownaves(df) <- c("alpha", "beta", "gamma")
df
blacket-dataframe-2

後からまとめる

最初にいくつか vector を作っておいて、それをつなげてもOK。

Apple <- c(1,2,3)
Banana <- c(4,5,6)

df <- data.frame(Apple,Banana)
rownaves(df) <- c("alpha", "beta" , "gamma" )
df
blacket-dataframe-2

Matrix から変換する

まずマトリックスを作る。

m <- matrix(1:6, ncol=2)
m
output
        [,1] [,2]
[1,]        1   4
[2,]        2   5
[3,]        3   6

作成したマトリックスに行名と列名をつける。

m <- matrix(1:6, ncol=2)
colnames(m) <- c("Apple", "Banana")
rownames(m) <- c("alpha", "beta", "gamma")
m
output
        Apple Banana
alpha        1    4
beta         2    5
gamma        3    6

で、このマトリックス(m)をas.data.frameを使って、データフレーム(df)に変換。

df <- as.data.frame(m)
df
blacket-dataframe-1

 

本当にデータフレームになったかどうかは、is.data.frame()で確認できる。

is.data.frame(df)
output
[1] TRUE
is.matrix(df)
output
[1] FALSE

データフレームを作る:tibbleで作る

data.frame()tibble()は厳密には異なるデータ構造だけど、tibble()で作成した表がより汎用性が高い。

事前準備:{tidyverse}パッケージを読み込む

tibble()は{tidyverse}パッケージに入っているので、まずはそれを読み込む。

インストールしていない場合はインストールから。

install.packages("tidyverse")
library(tidyverse)

べクターをつなげて作る

直接入れ込む

tibble(列名1=内容1, 列名2=内容2, 列名3=内容3, ...)

というように、各列のベクターをつなげて作る。

df <- tibble(
        Apple=c(1,2,3),
        Banana=c(4,5,6)
        )
dataframe-1

 

行名をrownames()で追加しようとしたけど、tibble()は行名のカスタムができないらしい。

後からまとめる

最初にいくつか vector を作っておいて、それをつなげてもOK。

Apple <- c(1,2,3)
Banana <- c(4,5,6)

df <- tibble(Apple,Banana)df <- data.frame(Apple,Banana)
rownaves(df) <- c("alpha", "beta" , "gamma" )
df
blacket-dataframe-2

データフレームを作る:テーブル (.csv, .xslx etc.) から取り込む

大量のデータを扱う場合は、エクセルシートなどのデータを取り込む方法が一般的。

方法は下記参照。

データフレームの各要素にアクセスする方法

下記参照。

References