Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Masahiro Hayashi
3,071 views
初心者講習会資料(Osaka.r#6)
Technology
◦
Business
◦
Read more
1
Save
Share
Embed
Embed presentation
Download
Downloaded 17 times
1
/ 16
2
/ 16
3
/ 16
4
/ 16
5
/ 16
6
/ 16
7
/ 16
8
/ 16
9
/ 16
10
/ 16
11
/ 16
12
/ 16
13
/ 16
14
/ 16
15
/ 16
16
/ 16
More Related Content
PDF
初心者講習会資料(Osaka.R#5)
by
Masahiro Hayashi
PDF
初心者講習会資料(Osaka.R#7)
by
Masahiro Hayashi
PPTX
Javaプログラミング入門【第3回】
by
Yukiko Kato
PPTX
Javaプログラミング入門【第2回】
by
Yukiko Kato
PPTX
Javaデザインパターン入門【第3回】
by
Yukiko Kato
PPTX
Javaプログラミング入門【第7回】
by
Yukiko Kato
PPT
ジェネリクスの基礎と応用 JJUG CCC 2012 Fall
by
nagise
PDF
Equality in Scala (ScalaMatsuri 2020)
by
Eugene Yokota
初心者講習会資料(Osaka.R#5)
by
Masahiro Hayashi
初心者講習会資料(Osaka.R#7)
by
Masahiro Hayashi
Javaプログラミング入門【第3回】
by
Yukiko Kato
Javaプログラミング入門【第2回】
by
Yukiko Kato
Javaデザインパターン入門【第3回】
by
Yukiko Kato
Javaプログラミング入門【第7回】
by
Yukiko Kato
ジェネリクスの基礎と応用 JJUG CCC 2012 Fall
by
nagise
Equality in Scala (ScalaMatsuri 2020)
by
Eugene Yokota
What's hot
PPT
ジェネリクスの基礎とクラス設計への応用
by
nagise
PDF
Essential Scala 第5章 シーケンス処理
by
Takuya Tsuchida
PDF
普通のプログラミング言語R
by
Shuyo Nakatani
PDF
Yamadai.Rデモンストレーションセッション
by
考司 小杉
PDF
Lisp tutorial for Pythonista : Day 2
by
Ransui Iso
PDF
BOF1-Scala02.pdf
by
Hiroshi Ono
PPT
Pythonintro
by
Mikio Kubo
PDF
JavaのGenericsとは?
by
Kenji Nakamura
PDF
Scala の関数型プログラミングを支える技術
by
Naoki Aoyama
PDF
Material
by
_TUNE_
PPTX
PHP, JavaScriptプログラマのためのC#入門
by
Tomo Mizoe
PDF
たのしい高階関数
by
Shinichi Kozake
PDF
たのしい関数型
by
Shinichi Kozake
PPTX
ゆるふわScalaコップ本読書会 第7章
by
Yuta Yokoi
PPTX
Interpreting Tree Ensembles with inTrees
by
Satoshi Kato
PDF
R による文書分類入門
by
Takeshi Arabiki
PPTX
Imputation of Missing Values using Random Forest
by
Satoshi Kato
PDF
What Dotty fixes @ Scala関西サミット
by
Taisuke Oe
ジェネリクスの基礎とクラス設計への応用
by
nagise
Essential Scala 第5章 シーケンス処理
by
Takuya Tsuchida
普通のプログラミング言語R
by
Shuyo Nakatani
Yamadai.Rデモンストレーションセッション
by
考司 小杉
Lisp tutorial for Pythonista : Day 2
by
Ransui Iso
BOF1-Scala02.pdf
by
Hiroshi Ono
Pythonintro
by
Mikio Kubo
JavaのGenericsとは?
by
Kenji Nakamura
Scala の関数型プログラミングを支える技術
by
Naoki Aoyama
Material
by
_TUNE_
PHP, JavaScriptプログラマのためのC#入門
by
Tomo Mizoe
たのしい高階関数
by
Shinichi Kozake
たのしい関数型
by
Shinichi Kozake
ゆるふわScalaコップ本読書会 第7章
by
Yuta Yokoi
Interpreting Tree Ensembles with inTrees
by
Satoshi Kato
R による文書分類入門
by
Takeshi Arabiki
Imputation of Missing Values using Random Forest
by
Satoshi Kato
What Dotty fixes @ Scala関西サミット
by
Taisuke Oe
Viewers also liked
PDF
Packages for data wrangling データ前処理のためのパッケージ
by
Hiroki K
PDF
Kobe.R #15 - Incanter チョットシッテル
by
tnoda
PPTX
R in life science2
by
Yoshiki Tomita
PDF
Rデータ処理入門
by
Hiroki K
PDF
R6 classes
by
hiroki84
PDF
Mad kobe.r14
by
florets1
PDF
サポートベクトルマシン入門
by
Wakamatz
PDF
Factor型の注意点
by
Hiroki K
PDF
Kobe.R #18: 本の紹介: 通称「緑本」
by
tnoda
PPTX
R in life science
by
Yoshiki Tomita
Packages for data wrangling データ前処理のためのパッケージ
by
Hiroki K
Kobe.R #15 - Incanter チョットシッテル
by
tnoda
R in life science2
by
Yoshiki Tomita
Rデータ処理入門
by
Hiroki K
R6 classes
by
hiroki84
Mad kobe.r14
by
florets1
サポートベクトルマシン入門
by
Wakamatz
Factor型の注意点
by
Hiroki K
Kobe.R #18: 本の紹介: 通称「緑本」
by
tnoda
R in life science
by
Yoshiki Tomita
Similar to 初心者講習会資料(Osaka.r#6)
PDF
Tokyor23 doradora09
by
Nobuaki Oshiro
PPT
K010 appstat201201
by
t2tarumi
PPT
12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと
by
Haruka Ozaki
PPTX
Rプログラミング02 データ入出力編
by
wada, kazumi
PPT
R intro
by
yayamamo @ DBCLS Kashiwanoha
PPTX
統計環境R_データ入出力編2016
by
wada, kazumi
PDF
10分で分かるr言語入門ver2.9 14 0920
by
Nobuaki Oshiro
PDF
はじめての「R」
by
Masahiro Hayashi
DOCX
Ⅰ. Rの基礎 2017
by
wada, kazumi
PDF
Introduction to R
by
Yukihiro NAKAJIMA
PDF
Nagoya.R #12 入門者講習
by
Yusaku Kawaguchi
PDF
10分で分かるr言語入門ver2.10 14 1101
by
Nobuaki Oshiro
PDF
Rあんなときこんなとき(tokyo r#12)
by
Shintaro Fukushima
PDF
第1回R勉強会@東京
by
Yohei Sato
PDF
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門
by
Koichi Hamada
PDF
統計解析環境Rによる統計処理の基本―検定と視覚化―
by
SAKAUE, Tatsuya
PDF
R note 01_ver1.2
by
Satoshi Kume
PDF
Hiroshimar4_Rintro
by
SAKAUE, Tatsuya
PDF
テーマ別勉強会(R言語)#1.pdf
by
Takuya Kubo
PDF
HiRoshimaR3_IntroR
by
SAKAUE, Tatsuya
Tokyor23 doradora09
by
Nobuaki Oshiro
K010 appstat201201
by
t2tarumi
12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと
by
Haruka Ozaki
Rプログラミング02 データ入出力編
by
wada, kazumi
R intro
by
yayamamo @ DBCLS Kashiwanoha
統計環境R_データ入出力編2016
by
wada, kazumi
10分で分かるr言語入門ver2.9 14 0920
by
Nobuaki Oshiro
はじめての「R」
by
Masahiro Hayashi
Ⅰ. Rの基礎 2017
by
wada, kazumi
Introduction to R
by
Yukihiro NAKAJIMA
Nagoya.R #12 入門者講習
by
Yusaku Kawaguchi
10分で分かるr言語入門ver2.10 14 1101
by
Nobuaki Oshiro
Rあんなときこんなとき(tokyo r#12)
by
Shintaro Fukushima
第1回R勉強会@東京
by
Yohei Sato
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門
by
Koichi Hamada
統計解析環境Rによる統計処理の基本―検定と視覚化―
by
SAKAUE, Tatsuya
R note 01_ver1.2
by
Satoshi Kume
Hiroshimar4_Rintro
by
SAKAUE, Tatsuya
テーマ別勉強会(R言語)#1.pdf
by
Takuya Kubo
HiRoshimaR3_IntroR
by
SAKAUE, Tatsuya
More from Masahiro Hayashi
PDF
オレオレR-GUIを作りたい
by
Masahiro Hayashi
KEY
Rzパッケージの紹介
by
Masahiro Hayashi
KEY
重回帰職人の朝は早い
by
Masahiro Hayashi
PPTX
Rzパッケージ―spssのようなデータ管理インターフェイス
by
Masahiro Hayashi
PDF
はじめてでもわかるデータ入出力
by
Masahiro Hayashi
PDF
RGtk2入門
by
Masahiro Hayashi
オレオレR-GUIを作りたい
by
Masahiro Hayashi
Rzパッケージの紹介
by
Masahiro Hayashi
重回帰職人の朝は早い
by
Masahiro Hayashi
Rzパッケージ―spssのようなデータ管理インターフェイス
by
Masahiro Hayashi
はじめてでもわかるデータ入出力
by
Masahiro Hayashi
RGtk2入門
by
Masahiro Hayashi
初心者講習会資料(Osaka.r#6)
1.
Osaka.R#6 初心者講習会資料
2011/07/02 林真広 インストール インストーラのダウンロード http://www.r-project.org/ どちらかを選ぶ (どちらでも同じ) 1
2.
※ Windows の場合 ※
インストーラの実行時の注意点(windows) 「インストール中に利用する言語」として Japanese が選択されているが,文字化けが発生する ので,English を選択しておく あくまで「インストール中に利用する言語」なので,インストール後は日本語化された R を使える 2
3.
スクリプトの実行
スクリプト(コマンド,プログラム,命令ともいう)をコンソール,またはエディタに書き込む エディタは,メニューバーから「ファイル>新しいスクリプト」とたどって起動する エディタ コンソール エディタに書いたスクリプトは,保存しておけば,一度 R を閉じても,「ファイル>スクリプト を開く」で読み込める コンソールにスクリプトを書き込んだ場合は,エンターキーを押せば実行される エディタに書き込んだ場合は,Ctrl+R でカーソルのある行のスクリプトが実行される 範囲を選択して Ctrl+R を押せば,選択した範囲すべてが実行される 「編集>カーソル行または選択中の R コードを実行」またはツールバーのボタンでも 同じ TIPS & CAUTIONS! ☆ 大文字小文字,全角半角の区別あり(全角は基本的に使わないほうがいい!) 特に記号の全角半角に注意が必要 "”$$!!++--==(()) 見分けがつきますか…? 変換ではなく IM を On/Off したほうが確実(日本語を使う機会は少ない) 3
4.
コンソールの状態
左は何でも入力できる状態。左端に「>」が表示されている 右は続きの入力を待っている待機状態。左端に「+」が表示されている TIPS & CAUTIONS! ☆ 待機状態の場合,「正しく」続きを入力しなければエラーになる 「STOP」ボタン,「その他>現在の計算を中断」,Esc キーで待機状態をキャンセ ルできる 最初のスクリプト # print という関数(機能)に"Hello, world!"という文字列を渡す print("Hello, world!") # コンソールに"Hello, world!"と表示される # [1, 2, 5, 4]というベクトルを x という変数に保存 x <- c(1, 2, 5, 4) # mean という関数に x を入力,出力を y という変数に保存 y <- mean(x) # 平均値が計算される # y の中身を表示 y R の操作には関数を使う 基本的な操作は,「関数(値)」と命令するだけ。数学の f(x)と同じ さらに f(x)と同様に,入力に対して関数は必ず値を返す(値は数値とは限らない) 4
5.
関数に入力する値を引数(ひきすう)またはオプション,関数が返す値を返り値または戻り 値と呼ぶ mean の例の場合,x という変数が引数,3 という数値が返り値 複数の引数を関数に入力する場合,区切り文字として「,」を使う 例えば「mean(x, na.rm=TRUE)」,na.rm は欠損値(NA)を省くか否か TIPS & CAUTIONS! ☆ 「#」を書くと,それ以降はコメントとして扱われる(処理の上で無視される) ☆ 半角のスペースは見やすさのために記号や関数名の前後などに挿入できる 「1 + 1」「print( "Hello, world!" )」「mean (x)」など 「x< -y」「me an(x)」などはだめ ☆ 改行も適宜挿入できるが,挿入できる場所はコンマや記号の後ろにかぎられる ☆ スペースの使い方などは自分ルールでもいいが,Google's R Style Guide や R Coding Conventions などの既存のルールに従うと,読みやすいスクリプトが書け る(以下は例) 一行は 80 文字程度(横スクロールバーが出ない程度の長さ) 一行が長くなる場合は,コンマの後ろで適宜改行 2 項演算子(=,+,-,<-など)の前後に半角スペース(「x <- y」や「1 + 1」) コンマの後ろに半角スペース(「c(1, 2, 3)」) 関数の使い方 関数は,関数(引数 1, 引数 2, 引数 3, ...)というふうに使う 引数は名前を持っていて,関数(名前=引数)という書き方をする 初期値 引数の名前 5
6.
TIPS & CAUTIONS! ☆
引数に初期値が設定されている場合,引数を省略できる ☆ 引数の名前は省略可能だが,省略できない場合もあるので省略しないほうが無難 例えば 3 つ引数がある関数で第 2 引数を省略する場合,第 3 引数は名前を省 略できない 省略すると第 3 引数ではなく第 2 引数とみなされる 変数 変数は入れ物のようなもの 変数に入れる実体をオブジェクトと呼ぶ 新たな変数を作るときは,「新たな変数 <- オブジェクト(または変数)」というふうに書く すべての関数は値(オブジェクト)を返すので,これも変数に入れられる 「新たな変数 <- 関数(引数 1, 引数 2, 引数 3, ...)」とすればいい オブジェクト オブジェクトにはクラス(種類)がある もっとも基本的なクラスは数値(numeric),文字列(character),論理(logical)クラス 他 に 重 要 な ク ラ ス は 因 子 ( factor ) , 行 列 ( matrix ) , リ ス ト ( list ) , デ ー タ フ レ ー ム (data.frame)クラス ここでいう因子は因子分析の因子とは関係がなく,カテゴリ変数のこと 行列は二次元の行列 データフレームは,ケース(行)×変数(列)という形の,分析に用いるデータセット R を使う用途によってクラスの重要度は異なるので最初からすべて理解する必要はない オブジェクトのクラスによって扱いが異なるので,どのクラスのオブジェクトを操作しているのか を常に意識しよう 6
7.
理論編―――――――――――――――――――― 数値(numeric)クラス 1 + 2 x
<- 10 – 5 y <- x + 9 is.numeric(y) # 引数が数値クラスならば TRUE,そうでなければ FALSE を返す 4 * 5 / 10 # 「*」はかけ算,「/」は割り算 (3 + 6) * 2^3 # 「^」は累乗(この場合 2 の 3 乗)。演算の順番は数学と同じで,括弧も使える c(1, 3) + 2 # [1, 3]というベクトルを作り,1 を足す z <- 1:5 # [1, 2, 3, 4, 5]というベクトルを作る z[2] + z[3] # z の 2 番目の要素と 3 番目の要素を足しあわせる R ではほとんどのクラスのオブジェクトがベクトル 一つの数字でも,長さ 1 のベクトル 数学のベクトルのように難しく考えるのではなく,複数のオブジェクトをひとまとめにして便利に 扱える機能と考えよう 変数[数字]と書けば,その変数の中の,与えた数字の位置にある要素を取り出せる この数字を,添字またはインデックスと呼ぶ 行列(matrix)クラス 2 次元の行列を扱うためのクラス 行列演算する人は必須 しない人は要素へのアクセスの仕方だけ覚えておけばだいたい大丈夫 関数の返り値が行列のことがよくある mat <- matrix(1:15, nrow=3, ncol=5, byrow=TRUE) # nrow で行数,ncol で列数を指定(普通はどちらか一方でいい) # byrow=TRUE にすると,ベクトルを行方向に並べて行列を作る(デフォルトは byrow=FALSE) mat mat <- matrix(1:15, nrow=3, ncol=5, byrow=FALSE) mat dim(mat) # 行数,列数を取得 dimnames(mat) <- list(c("r1", "r2", "r3"), c("c1", "c2", "c3", "c4", "c5")) # 行名,列名を設定 mat[2, 3] # mat[行, 列]の要素を取り出す mat[2,] # 2 行目全体を取り出す mat[, 3] # 3 列目全体を取り出す mat[2, 1:3] # 2 行目の 1~3 列目の要素を取り出す 7
8.
文字列(character)クラス "文字列"
# ダブルコーテーションで文字を囲むと,文字列オブジェクトとして扱われる v1 <- c("名前", "性別", "年齢") is.character(v1) # 引数が文字列クラスならば TRUE,そうでなければ FALSE を返す is.numeric(v1) v2 <- c("1", "2", "3") # 数値もダブルコーテーションで囲めば文字列オブジェクト is.numeric(v2) ダブルコーテーションを全角にしないよう注意! 日本語の文字列オブジェクトを作ろうとするときに失敗しやすい シングルコーテーションでもいい(「'文字列'」) 文字列にダブルコーテーションを含めたい場合はシングルコーテーションを使う 「'文字列の中に"を入れる'」 文字列オブジェクトもベクトル 論理(logical)クラス 条件判断や関数のオプションの ON,OFF に使われる TRUE,FALSE の 2 種類だけ TRUE は「真」,FALSE は「偽」 TRUE “TRUE” # 表示の違いに注目 TRUE <- “真” # TRUE,FALSE は変数名にはできない x <- 4 x == 5 x < 5 y <- x >= 4 # 変数にも入れられる y # 論理ベクトル is.logical(y) x <- 1:4 x[c(TRUE, TRUE, FALSE, FALSE)] # 添字の代わりに論理ベクトルで要素を選択 x <= 2 x[x <= 2] # 応用的な要素の選択方法。条件によって要素を選択 print(“R”, quote=TRUE) # 関数の引数として論理オブジェクトを使う print(“R”, quote=F) # 引数の場合,TRUE は T,FALSE は F と省略できる 省略記法は間違いの元なので最初のうちはあまり使わない方がいい 8
9.
データフレーム(data.frame)クラス
表形式のデータを扱うためのクラス 一列が一つの変数 sex <- c("男性", "男性", "男性", "女性", "女性", "女性") age <- c(20, 35, 50, 42, 31, 22) df <- data.frame(sex, age) df df$sex # データフレーム内の変数にアクセス df[["age"]] # 変数にアクセスするもう一つの方法 colnames(df) # 変数名の取得 colnames(df)[1] <- "性別" # 変数名の変更 df$job <- c(1, 0, 1, 0, 1, 0) # 新しい変数の作成 attach(df) # データフレーム内の変数を大局的環境に展開 mean(age) # データフレーム内の変数を直接扱える,が… age <- c(10, 10, 10, 10, 10, 10) detach(df) # attach の解除 df$age # attach 中の変数の編集は反映されない 同じ長さのベクトルを引数に取る 引数は主に数値オブジェクトか文字列オブジェクト ただし,文字列オブジェクトはデフォルトでは因子(factor)オブジェクトに変換される attach は便利だが,エラーのもとになりやすいので推奨しない 因子(factor)クラス 文字列オブジェクトに,カテゴリの概念を加えたものと考えればいい 各種カテゴリカルデータ分析に必要 sex # 文字列オブジェクト df$sex # 因子オブジェクト。表示の違いに注目 summary(df$sex) # カテゴリの概念があるので,カテゴリごとに集計できる 9
10.
リスト(list)クラス
各種クラスのオブジェクトをひとまとめにするためのオブジェクト データフレームは実はリストの拡張なので,操作方法は似ている l1 <- list(num=1:5, char=c("a", "b", "c", "d"), mat=matrix(1:9, ncol=3)) # 「名前=オブジェクト(または変数)」で要素を設定 # リストにはなんでも入る! # なんらかの統計解析をおこなう関数は,たいてい返り値がリスト l1 l1[["num"]] li$num # 要素へのアクセスの仕方はデータフレームと同じ 実際の分析 data(iris) # R に組み込まれているデータの読み込み is.data.frame(iris) # データフレームオブジェクト summary(iris) # データフレームの概要 cor(iris$Sepal.Length, iris$Sepal.Width) # 相関係数の計算 median(iris$Sepal.Length) # 中央値 iris$cat1 <- "high" # 新しい変数 iris$cat1[iris$Sepal.Length < 5.8] <- "low" # Sepal.Length が 5.8 以下ならば"low"というカテゴリに table(iris$Species, iris$cat1) # クロス表作成 10
11.
実践編―――――――――――――――――――― 作業ディレクトリの設定
作業ディレクトリ(ディレクトリはフォルダとだいたい同じ意味)とは,データの入出力の際に基 準となるディレクトリ 作業の前にまず設定しておく # 現在の作業ディレクトリを返す(Get Working Directory) getwd() # 作業ディレクトリの設定(Set Working Directory) setwd("c:/Users/UserName/Documents") # R でのディレクトリの区切り文字は"/"もしくは Windows の場合は"¥¥"も可 # ダイアログで対話的にディレクトリを選択し,ディレクトリのパスを返す(Windows 限定?) choose.dir() # choose.dir()のファイル版(Mac にもある) file.choose() # 対話的にディレクトリを選択し,作業ディレクトリに設定する setwd(choose.dir()) TIPS & CAUTIONS! ☆ 作業ディレクトリは GUI からも設定できる ただし,スクリプトに setwd(…)を書いて保存しておけば,繰り返し作業する場 合に設定が楽 11
12.
パッケージのインストール,読み込み
パッケージの追加により機能を増やせる(最初から入っているパッケージもある) メニューバーから”パッケージ>パッケージのインストール” どのミラーからダウンロードするかを選ぶ。ダウンロードできるものはどこでも同じなので, Japan の中から好きなものを選ぶ 関数を使ってインストールすることもできる install.packages("Hmisc") # 一覧から探す必要がないのでおすすめ install.packages(c("memisc", "car")) # 複数まとめてインストールすることもできる library(memisc) # パッケージの読み込み 分析例 サンプルデータは http://www.spss.co.jp/support/sample.html からダウンロード 作業ディレクトリに保存しておく library(foreign) d1 <- read.spss("bank.sav", to.data.frame=TRUE, reencode="shift-jis") t.test(SALNOW ~ SEX, data=d1) # t 検定(ウェルチ) t.test(d1$SALNOW, d1$SALBEG, paired=TRUE) # 対応のある t 検定 aov1 <- aov(SALNOW ~ SEXRACE, data=d1) # 分散分析 summary(aov1) # 結果の概要 lm1 <- lm(SALNOW ~ AGE + SEX*MINORITY + JOBCAT, data=d1) # 重回帰分析 summary(lm1) # 結果の概要 12
13.
テキストデータの読み込み read.csv(file.choose(), header=TRUE) # 対話的にデータを読み込み read.csv("sample.csv",
header=TRUE) # 作業ディレクトリから sample.csv を読み込み # header オプションは一行目を列の名前(変数名)として読み込むかどうか read.delim("sample.txt", header=TRUE) # tab 区切りの場合 # data.frame 形式で読み込まれる TIPS & CAUTIONS! ☆ データがうまく読み込めない場合 文字化け…文字コードが合っていない。fileEncoding オプションに文字コー ドを指定する。日本語の場合,文字コードは shift-jis か UTF-8 read.csv("sample.csv", fileEncoding="UTF-8") 欠 損 値 の 処 理 … 欠損 値が 含 まれ る 場 合 は,欠 損値 に あ ててい る 文 字 を na.strings オプションに設定する read.csv("sample.csv", na.strings="NA") 変数がおかしい…変数が数値の場合,変数の中に全角数字がないか,文字が 含まれていないかを確認する 他のソフトウェアのデータの読み込み R は様々な形式のデータを読み込むことができる library(foreign) # 他形式のデータの入出力用パッケージ d1 <- read.spss("bank.sav", to.data.frame=TRUE, reencode="shift-jis") # reencode は文字コードの指定。Windows の場合はたいていなくても大丈夫 # 他にも read.xport,read.dta などがある データの書き込み write.csv(d1, "sample.csv", row.names=FALSE) # 作業ディレクトリに d1 を csv で保存 write.table(d1, "sample.dat", row.names=FALSE, sep="¥t") # 作業ディレクトリに d1 を tab 区切りテキストで保存 13
14.
データの操作 summary(d1)
# 全データの要約統計量 head(d1) # データの先頭数行を表示。末尾は tail(...) colnames(d1) # データに含まれる変数の名前を取得 d1$SEX # 変数へのアクセス d1$SEX[5] # 変数の 5 番目のケース データの閲覧(単純集計表) # カテゴリ変数の場合 table(d1$JOBCAT) summary(d1$JOBCAT) # 連続変数の場合 table(d1$AGE) # 実用的ではない stem(d1$AGE) # 幹葉図 boxplot(d1$AGE) # 箱ひげ図 hist(d1$AGE, breaks="FD") # ヒストグラム # breaks は区切り方の指定。デフォルトの方法は古典的すぎるので変更 データの閲覧(記述統計) summary(d1$SALNOW) mean(d1$SALNOW, na.rm=TRUE) # na.rm オプションは欠損値を省くかどうか # このデータには欠損値がないのでどちらでも結果は変わらない sd(d1$SALNOW, na.rm=TRUE) # 不偏標準偏差 # 他にも var(),max(),min(),range()などがある # na.rm はこれら記述統計の関数では大概使えるが,常に使えるわけではない データの閲覧(クロス集計表) table(d1$MINORITY, d1$JOBCAT) # 行,列の順番 library(memisc) # memisc は社会科学系で便利な機能がまとめられている aggregate(JOBCAT ~ MINORITY, data=d1) # 返り値は data.frame aggregate(percent(JOBCAT) ~ MINORITY, data=d1) # パーセントで表示 14
15.
変数のリコード
リコードの方法はたくさんあるが,memisc パッケージの recode 関数が最も汎用的 Hmisc,car パッケージにも recode 関数がある。先に読み込んだものが上書きされるので, memisc を最後に読み込むように! d1$AGE3 <- recode(d1$AGE, "低" <- range(min , 40), "中" <- range(40.01, 60), "高" <- range(60.01, max)) # 「d1$新しい変数名 <- 新しい変数」でデータフレームに変数を追加 d1$JOB3 <- recode(d1$JOBCAT, "事務" <- c("事務職", "事務研修員"), "マニュアル" <- "警備員", "専門・管理" <- c("専門職研修員", "管理職", "MBA 研修員", "技術職")) R ではカテゴリ変数と連続変数が明確に区別されることに注意! TIPS & CAUTIONS! ☆ recode 関数のバグ memisc の現在のバージョンでは,recode 関数にバグがある 欠損値の含まれている量的変数(数値ベクトル)をリコードしようとすると,エラー が出る その場合は一時的に欠損値を別の値に置き換えてリコードするとよい d1$AGE[is.na(d1$AGE)] <- 999 # 欠損値を 999 に置き換え 詳細は http://d.hatena.ne.jp/phosphor_m/20110629/1309339215 15
16.
ドキュメント編―――――――――――――――――― help 等のドキュメントの使い方
関数を初めて使うとき,使い方がよくわからないとき,エラーが出るとき,必ず help を読む! 特に初めて使う関数の help は,流し読みでもいいから絶対に目を通す! help(var) ?var # help(var)と同じ。利便性のための省略形。 help の読み方 すべて理解する必要はない Usage には関数の使い方が書いてある 引数のクラスによって使い方がちがう関数の場合,クラス別の使い方が書いてある(ことも ある) 最も重要なのは Arguments 引数の説明が書いてある 最も多いエラーは Type Error(数値が必要なところに因子を渡す等,クラスの間違い) エラーなら実害はないが,期待とはちがう処理が行われていることも… どの引数にどのクラスのオブジェクトを渡さなければならないかを確認する! Value には返り値の詳細が書いてあるのでこれも重要 References には参考になる論文や web ページが書いてある See Also には似た機能を持つ関数や関連する関数が書いてある Example は二番目に重要 文章を読んで分からなくても,実際に動かしてみたら分かることがよくある example 関数は,help 内の example をまとめて実行してくれる example(lm) 新しいパッケージを使うとき(demo,vignette,パッケージの help) 使ってみたいパッケージの情報がウェブや書籍で見つからない場合がある そうでなくとも新しいパッケージは使い方がよくわからないもの デモ,ビネット(vignette),パッケージの help を見れば多くの情報を得ることができる ただし,デモとビニエットは必ずあるわけではない demo(package="graphics") # graphics パッケージが持っているデモの一覧 demo("graphics") vignette(package="memisc") # memisc パッケージが持っているビニエットの一覧 vignette("anes48") help(package="Hmisc") # Hmisc パッケージのヘルプ 16
Download