本ページはプロモーションが含まれています

広告 Analysis R データ前処理

R | 変数の型を確認&一括で変更する方法

Rで型の変更をしたいけれど、どうすればいいのかわからない

変数の型を一括で変更する方法を知りたい!

これらのお悩みを解決します。

この記事で説明していること

・型を確認する方法
・型を変更する方法

(補足)Rでヘルプを見る方法

上記について説明しています。

今回使用するデータ

ggplot2パッケージに入っている"mpg"のデータセットを使って説明します。
ggplot2はtidyverseパッケージで開いておきましょう。tidyverseパッケージをまだインストールしていない方は、インストールから始めてくださいね!

install.packages("tidyverse") #インストール済みの人はスルーしてください
library(tidyverse)

mpgデータセットについて

mpgは、1999年と2008年における自動車の燃費のデータで、11変数234行からなるデータフレームです。

本記事では黒字が入力コード青字がRからの出力を示しています。

head(mpg) # mpgデータセットの先頭6行を確認する

> head(mpg)
# A tibble: 6 × 11
  manufacturer model displ  year   cyl trans    drv     cty   hwy fl    class
  <chr>        <chr> <dbl> <int> <int> <chr>    <chr> <int> <int> <chr> <chr>
1 audi         a4      1.8  1999     4 auto(l5) f        18    29 p     comp…
2 audi         a4      1.8  1999     4 manual(… f        21    29 p     comp…
3 audi         a4      2    2008     4 manual(… f        20    31 p     comp…
4 audi         a4      2    2008     4 auto(av) f        21    30 p     comp…
5 audi         a4      2.8  1999     6 auto(l5) f        16    26 p     comp…
6 audi         a4      2.8  1999     6 manual(… f        18    26 p     comp…

変数は以下の11変数です。

manufacturer:車のメーカー
model : モデルの名前
displ: 排気量
year : 年式
cyl : シリンダー数(何気筒か)
trans: トランスミッションの種類(オートマとかMTとか)
drv : 駆動タイプ(f: 前輪駆動, r: 後輪駆動, 4: 4WD)
cry : 市街地の燃費
hwy : 高速道路での燃費
fl : 燃料のタイプ
class: 車のタイプ(コンパクトとか2シーターとか)

こういった補足情報は、R上でヘルプを開けば見ることができます。

(補足)ヘルプの見方

RStudioの場合、mpgの前にを付けて実行すると、画面右下のペイン(デフォルト設定の場合)に出てきます。mpgにカーソルを持って行って、F1を押して見ることも可能です。

# mpgのヘルプを見る
?mpg
RStudio画面右下に出てくるmpgデータセットのヘルプページ

変数の型を確認する

mpgの変数の型を確認していきます。

1変数の型を確認する

任意の1変数の型は、class関数を使えば確認することができます。
mpgのmanufacturerの型を知りたい場合は以下のように入力します。

class(mpg$manufacturer)

> class(mpg$manufacturer)
[1] "character"

manufacturerは文字列型(character)になっていることを確認できましたね!

データフレーム内のすべての変数の型を確認する

データフレームのすべての変数に対して変数の型を見たい場合は、str関数を使います。

str(mpg)

> str(mpg)
tibble [234 × 11] (S3: tbl_df/tbl/data.frame)
 $ manufacturer: chr [1:234] "audi" "audi" "audi" "audi" ...
 $ model       : chr [1:234] "a4" "a4" "a4" "a4" ...
 $ displ       : num [1:234] 1.8 1.8 2 2 2.8 2.8 3.1 1.8 1.8 2 ...
 $ year        : int [1:234] 1999 1999 2008 2008 1999 1999 2008 1999 1999 2008 ...
 $ cyl         : int [1:234] 4 4 4 4 6 6 6 4 4 4 ...
 $ trans       : chr [1:234] "auto(l5)" "manual(m5)" "manual(m6)" "auto(av)" ...
 $ drv         : chr [1:234] "f" "f" "f" "f" ...
 $ cty         : int [1:234] 18 21 20 21 16 18 18 18 16 20 ...
 $ hwy         : int [1:234] 29 29 31 30 26 26 27 26 25 28 ...
 $ fl          : chr [1:234] "p" "p" "p" "p" ...
 $ class       : chr [1:234] "compact" "compact" "compact" "compact" ...

str関数以外に、sapply関数を使ったりする方法がありますが、str関数を使うとデータの構造やfactor型の水準名が把握できて便利なのでstr関数を紹介しています。

ちなみにstructureのstrから来ています。Rオブジェクトがどういう構造から成っているかを見る関数です。

変数の型を変更する

変数の型を変更していきます。

基本の型変更:1変数のみ型を変更する

mpgデータセットの"manufacturer"について、文字列型(chr)からファクター型(factor)に変更してみましょう。使う関数は、as.factor関数です。

mpg$manufacturer <- as.factor(mpg$manufacturer) #型をfactor型に変更する
class(mpg$manufacturer) #変更されたか確認

> mpg$manufacturer <- as.factor(mpg$manufacturer)
> class(mpg$manufacturer)
[1] "factor"

変数manufacturerの型がfactor型に変更されました。
factor以外の型に変更する場合は、以下の関数を使います。

数値型:as.numeric
論理型:as.logical
文字列型:as.character
整数型:as.integer

一括で型を変更する

mpgで文字列型になっている、cyl(シリンダー数)、year(年式)、class(車の種類)、fl(燃料の種類)について、lapply関数で一括でファクター型に変更します。

# 型を変更したい変数をvarに入れる
var <- c("cyl", "year", "class", "fl")

mpg[, var] <- lapply(mpg[,var], as.factor) #一括で型を変更
str(mpg) #型変更できた確認

> mpg[, var] <- lapply(mpg[,var], as.factor)
> str(mpg)
tibble [234 × 11] (S3: tbl_df/tbl/data.frame)
 $ manufacturer: Factor w/ 15 levels "audi","chevrolet",..: 1 1 1 1 1 1 1 1 1 1 ...
 $ model       : chr [1:234] "a4" "a4" "a4" "a4" ...
 $ displ       : num [1:234] 1.8 1.8 2 2 2.8 2.8 3.1 1.8 1.8 2 ...
 $ year        : Factor w/ 2 levels "1999","2008": 1 1 2 2 1 1 2 1 1 2 ...
 $ cyl         : Factor w/ 4 levels "4","5","6","8": 1 1 1 1 3 3 3 1 1 1 ...
 $ trans       : chr [1:234] "auto(l5)" "manual(m5)" "manual(m6)" "auto(av)" ...
 $ drv         : chr [1:234] "f" "f" "f" "f" ...
 $ cty         : int [1:234] 18 21 20 21 16 18 18 18 16 20 ...
 $ hwy         : int [1:234] 29 29 31 30 26 26 27 26 25 28 ...
 $ fl          : Factor w/ 5 levels "c","d","e","p",..: 4 4 4 4 4 4 4 4 4 4 ...
 $ class       : Factor w/ 7 levels "2seater","compact",..: 2 2 2 2 2 2 2 2 2 2 ...

文字列型になっていたyear, cyl, fl, classを、一撃でfactor型に変更することができました!

\ オンラインでR言語を勉強するならUdemy /

UdemyのR講座を見てみる

まとめ:型の確認はstr関数、一括変更はsapply関数で!

今回はRの型確認と、型の一括変更の方法について紹介しました。

◆型の確認
 ・1変数に対してはclass関数
 ・データフレーム内のすべての変数に対してはstr関数

◆型の変更
 ・1変数に対してはas系関数
 ・指定した変数に対してはsapply関数

上記の方法で型の確認&変更することができます。

私は型の一括変更の方法をずっと知らず、「そういうものなのかなぁ」と思いながら律儀に1変数ずつ変更していました。独学あるあるですかね…。

この記事がRで悩んでいる人の役に立つことを祈っております。

\ オンラインでR言語を勉強するならUdemy /

UdemyのR講座を見てみる

R言語の勉強におすすめの本

今後Rの勉強をしていきたい!という方に、こちらの参考書がおすすめです。
特に、RユーザのためのRStudio実践入門は、tidyverseパッケージに特化して書かれていてとても実用的でしたのでオススメです。私自身、この本を読んでRで出来ることが一気に増えた実感のある本です。kindleで試し読みもできるのでぜひ参考にしてください。

  • この記事を書いた人

かにさん

めんどくさがり日本代表のワーママ。
住んでいる自治体の認可保育料が高いことをキッカケに、全国の保育料まとめブログを書き始めました。
趣味
ブログ執筆、海外ドラマ(刑事モノ)、投資、
面倒なことをいかに楽にこなすか考えること

-Analysis, R, データ前処理