SlideShare a Scribd company logo
1 of 15
Download to read offline
FACTOR型の注意点
Hiroki. K
Factor型について
 水準(Levels)がある変数
 デフォルト設定でData.Frameをつくる場合、文字列はFactorとなる
(例) > ans <- data.frame(result=c('yes', 'no', 'yes'))
> str(ans)
'data.frame': 3 obs. of 1 variable:
$ result: Factor w/ 2 levels "no","yes": 2 1 2
水準(Levels) 順位
no 1
yes 2
result
1
2
1
ans =
Factor型の操作が必要になる場合
 水準を任意の順に設定する(デフォルトはアルファベット順)
例1: yes、noの順になるようにData.Frameをつくる
> ans <- data.frame(result=c('yes', 'no', 'yes'), levels=('yes', 'no'))
> str(ans)
'data.frame': 3 obs. of 1 variable:
$ result: Factor w/ 2 levels “yes",“no": 1 2 1
【準備】以降で使うデータ①
#サンプルデータ: 1週間の曜日と値
> set.seed(123)
> data <- data.frame(day = c('mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun'),
val = rnorm(7))
> str(data)
'data.frame': 7 obs. of 2 variables:
$ day: Factor w/ 7 levels "fri","mon","sat",..: 2 6 7 5 1 3 4
$ val: num 0.78 1.456 -0.644 -1.553 -1.598 ...
【準備】以降で使うデータ②
#サンプルデータ: 数値にエラーが入る場合
> data$valError <- c('error', data$val[-1])
> str(data)
'data.frame': 7 obs. of 4 variables:
$ day: Factor w/ 7 levels "fri","mon","sat",..: 2 6 7 5 1 3 4
$ val: num 0.62 0.612 -0.162 0.812 2.197 ...
$ daySorted: Factor w/ 7 levels "mon","tue","wed",..: 1 2 3 4 5 6 7
$ valError: chr "error" "0.612123492650849" "-0.162310976918126" ...
【準備】以降で使うデータ③
#サンプルデータ: 曜日の水準の並べ替え⇒曜日順にする
> data$daySorted <- factor(data$day, levels=data$day)
#data$daySorted <- factor(data$day, levels=c(‘mon’, ‘tue’, ‘wed’, ‘thu’, ‘fri’, ‘sat’, ‘sun’))と同じ
> str(data)
'data.frame': 7 obs. of 4 variables:
$ day: Factor w/ 7 levels "fri","mon","sat",..: 2 6 7 5 1 3 4
$ val: num 0.62 0.612 -0.162 0.812 2.197 ...
$ daySorted: Factor w/ 7 levels "mon","tue","wed",..: 1 2 3 4 5 6 7
【準備】以降で使うデータ④
#サンプルデータ: 一旦CSVで保存して再度読み込む
> write.csv(data, 'data.csv', row.names=F)
> data1 <- read.csv('data.csv')
> data1$daySorted <- factor(data1$daySorted, levels=data1$daySorted)
> str(data1)
'data.frame': 7 obs. of 4 variables:
$ day: Factor w/ 7 levels "fri","mon","sat",..: 2 6 7 5 1 3 4
$ val: num 0.62 0.612 -0.162 0.812 2.197 ...
$ daySorted: Factor w/ 7 levels "mon","tue","wed",..: 1 2 3 4 5 6 7
$ valError: chr "error" "0.612123492650849" "-0.162310976918126" ...
【準備】以降で使うデータ⑤
#ここまでで準備したもの
day val daySorted valError
mon 0.6204 mon error
tue 0.6121 tue 0.6121
wed -0.1623 wed -0.1623
thu 0.8119 thu 0.8119
fri 2.1968 fri 2.1968
sat 2.0492 sat 2.0492
sun 1.6324 sun 1.6324
data =
保存・再読み込み
day val daySorted valError
mon 0.6204 mon error
tue 0.6121 tue 0.6121
wed -0.1623 wed -0.1623
thu 0.8119 thu 0.8119
fri 2.1968 fri 2.1968
sat 2.0492 sat 2.0492
sun 1.6324 sun 1.6324
data1 =
chr num factor chr chr num factor factor
Factorの並び替え
 デフォルトはアルファベット順
例2: dataのday, valをグラフ化
そのままグラフ化する場合:
> ggplot(data, aes(x=day, y=val)) +
geom_bar(stat='identity') +
theme_bw()
Factorの並び替え
 水準を任意の順に設定する
例3: dataのdaySorted, valをグラフ化
> ggplot(data, aes(x=day, y=valSorted)) +
geom_bar(stat='identity') +
theme_bw()
曜日順になっている ⇒
Factorに異常値が混入している場合
 まずは異常値が混入していない場合
例3: dataのdaySorted, valをグラフ化(再掲)
> ggplot(data, aes(x=day, y=valSorted)) +
geom_bar(stat='identity') +
theme_bw()
Factorに異常値が混入している場合
 次に異常値(error)が混入している場合
例4: dataのdaySorted, valErrorをグラフ化
> ggplot(data,
aes(x=daySorted,
y=as.numeric(valError))) +
geom_bar(stat='identity') +
theme_bw()
as.numericで異常値分が欠損になる(NAに強制変換)
Factorに異常値が混入している場合
 異常値(error)が混入しているデータを再読み込みする
例4: data1のdaySorted, valErrorをグラフ化
> ggplot(data1,
aes(x=daySorted,
y=as.numeric(valError))) +
geom_bar(stat='identity') +
theme_bw()
as.numericでFactorの順位が数値化されてしまう
Factorに異常値が混入している場合
data valに欠損値 保存・再読み込み data1
as.numeric(val) as.numeric(val)
そのまま数値化できない
Factorに異常値が混入している場合
data valに欠損値 保存・再読み込み data1
as.numeric(val) as.numeric(as.character(val))
一回文字列に直してから数値化

More Related Content

Similar to Factor型の注意点

20170923 excelユーザーのためのr入門
20170923 excelユーザーのためのr入門20170923 excelユーザーのためのr入門
20170923 excelユーザーのためのr入門Takashi Kitano
 
負荷テストことはじめ
負荷テストことはじめ負荷テストことはじめ
負荷テストことはじめKazumune Katagiri
 
Wb osaka 20120623
Wb osaka 20120623Wb osaka 20120623
Wb osaka 20120623Miho Ishida
 
Ⅰ. Rの基礎 2017
Ⅰ. Rの基礎 2017Ⅰ. Rの基礎 2017
Ⅰ. Rの基礎 2017wada, kazumi
 
EWD 3トレーニングコース#20 GlobalストレージのJavaScript用抽象化-(a)DocumentNodeオブジェクト
EWD 3トレーニングコース#20 GlobalストレージのJavaScript用抽象化-(a)DocumentNodeオブジェクトEWD 3トレーニングコース#20 GlobalストレージのJavaScript用抽象化-(a)DocumentNodeオブジェクト
EWD 3トレーニングコース#20 GlobalストレージのJavaScript用抽象化-(a)DocumentNodeオブジェクトKiyoshi Sawada
 
EWD 3トレーニングコース#20 GlobalストレージのJavaScript用抽象化-(a)DocumentNodeオブジェクト
EWD 3トレーニングコース#20 GlobalストレージのJavaScript用抽象化-(a)DocumentNodeオブジェクトEWD 3トレーニングコース#20 GlobalストレージのJavaScript用抽象化-(a)DocumentNodeオブジェクト
EWD 3トレーニングコース#20 GlobalストレージのJavaScript用抽象化-(a)DocumentNodeオブジェクトKiyoshi Sawada
 
月間10億pvを支えるmongo db
月間10億pvを支えるmongo db月間10億pvを支えるmongo db
月間10億pvを支えるmongo dbYuji Isobe
 
第4回DARM勉強会 (構造方程式モデリング)
第4回DARM勉強会 (構造方程式モデリング)第4回DARM勉強会 (構造方程式モデリング)
第4回DARM勉強会 (構造方程式モデリング)Yoshitake Takebayashi
 
初心者講習会資料(Osaka.R#5)
初心者講習会資料(Osaka.R#5)初心者講習会資料(Osaka.R#5)
初心者講習会資料(Osaka.R#5)Masahiro Hayashi
 
R入門とgoogle map +α
R入門とgoogle map +αR入門とgoogle map +α
R入門とgoogle map +αkobexr
 
jQuery Performance Tips – jQueryにおける高速化 -
jQuery Performance Tips – jQueryにおける高速化 -jQuery Performance Tips – jQueryにおける高速化 -
jQuery Performance Tips – jQueryにおける高速化 -Hayato Mizuno
 
Feature Selection with R / in JP
Feature Selection with R / in JPFeature Selection with R / in JP
Feature Selection with R / in JPSercan Ahi
 
第2回R勉強会1
第2回R勉強会1第2回R勉強会1
第2回R勉強会1Paweł Rusin
 
2011年11月18日
2011年11月18日2011年11月18日
2011年11月18日nukaemon
 
Ekmett勉強会発表資料
Ekmett勉強会発表資料Ekmett勉強会発表資料
Ekmett勉強会発表資料時響 逢坂
 
Python for Data Analysis: Chapter 2
Python for Data Analysis: Chapter 2Python for Data Analysis: Chapter 2
Python for Data Analysis: Chapter 2智哉 今西
 
データサイエンティスト必見!M-1グランプリ
データサイエンティスト必見!M-1グランプリデータサイエンティスト必見!M-1グランプリ
データサイエンティスト必見!M-1グランプリSatoshi Kitajima
 

Similar to Factor型の注意点 (20)

20170923 excelユーザーのためのr入門
20170923 excelユーザーのためのr入門20170923 excelユーザーのためのr入門
20170923 excelユーザーのためのr入門
 
負荷テストことはじめ
負荷テストことはじめ負荷テストことはじめ
負荷テストことはじめ
 
R intro
R introR intro
R intro
 
Wb osaka 20120623
Wb osaka 20120623Wb osaka 20120623
Wb osaka 20120623
 
Ⅰ. Rの基礎 2017
Ⅰ. Rの基礎 2017Ⅰ. Rの基礎 2017
Ⅰ. Rの基礎 2017
 
EWD 3トレーニングコース#20 GlobalストレージのJavaScript用抽象化-(a)DocumentNodeオブジェクト
EWD 3トレーニングコース#20 GlobalストレージのJavaScript用抽象化-(a)DocumentNodeオブジェクトEWD 3トレーニングコース#20 GlobalストレージのJavaScript用抽象化-(a)DocumentNodeオブジェクト
EWD 3トレーニングコース#20 GlobalストレージのJavaScript用抽象化-(a)DocumentNodeオブジェクト
 
EWD 3トレーニングコース#20 GlobalストレージのJavaScript用抽象化-(a)DocumentNodeオブジェクト
EWD 3トレーニングコース#20 GlobalストレージのJavaScript用抽象化-(a)DocumentNodeオブジェクトEWD 3トレーニングコース#20 GlobalストレージのJavaScript用抽象化-(a)DocumentNodeオブジェクト
EWD 3トレーニングコース#20 GlobalストレージのJavaScript用抽象化-(a)DocumentNodeオブジェクト
 
月間10億pvを支えるmongo db
月間10億pvを支えるmongo db月間10億pvを支えるmongo db
月間10億pvを支えるmongo db
 
第4回DARM勉強会 (構造方程式モデリング)
第4回DARM勉強会 (構造方程式モデリング)第4回DARM勉強会 (構造方程式モデリング)
第4回DARM勉強会 (構造方程式モデリング)
 
初心者講習会資料(Osaka.R#5)
初心者講習会資料(Osaka.R#5)初心者講習会資料(Osaka.R#5)
初心者講習会資料(Osaka.R#5)
 
Tokyo r28 1
Tokyo r28 1Tokyo r28 1
Tokyo r28 1
 
R入門とgoogle map +α
R入門とgoogle map +αR入門とgoogle map +α
R入門とgoogle map +α
 
jQuery Performance Tips – jQueryにおける高速化 -
jQuery Performance Tips – jQueryにおける高速化 -jQuery Performance Tips – jQueryにおける高速化 -
jQuery Performance Tips – jQueryにおける高速化 -
 
Feature Selection with R / in JP
Feature Selection with R / in JPFeature Selection with R / in JP
Feature Selection with R / in JP
 
第2回R勉強会1
第2回R勉強会1第2回R勉強会1
第2回R勉強会1
 
2011年11月18日
2011年11月18日2011年11月18日
2011年11月18日
 
Ekmett勉強会発表資料
Ekmett勉強会発表資料Ekmett勉強会発表資料
Ekmett勉強会発表資料
 
Python for Data Analysis: Chapter 2
Python for Data Analysis: Chapter 2Python for Data Analysis: Chapter 2
Python for Data Analysis: Chapter 2
 
20140920 tokyo r43
20140920 tokyo r4320140920 tokyo r43
20140920 tokyo r43
 
データサイエンティスト必見!M-1グランプリ
データサイエンティスト必見!M-1グランプリデータサイエンティスト必見!M-1グランプリ
データサイエンティスト必見!M-1グランプリ
 

Recently uploaded

業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 

Recently uploaded (8)

業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 

Factor型の注意点