Enviar pesquisa
Carregar
初心者講習会資料(Osaka.r#6)
•
1 gostou
•
3,037 visualizações
Masahiro Hayashi
Seguir
Tecnologia
Negócios
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 16
Baixar agora
Baixar para ler offline
Recomendados
初心者講習会資料(Osaka.R#5)
初心者講習会資料(Osaka.R#5)
Masahiro Hayashi
初心者講習会資料(Osaka.R#7)
初心者講習会資料(Osaka.R#7)
Masahiro Hayashi
Javaプログラミング入門【第3回】
Javaプログラミング入門【第3回】
Yukiko Kato
Javaプログラミング入門【第2回】
Javaプログラミング入門【第2回】
Yukiko Kato
Javaデザインパターン入門【第3回】
Javaデザインパターン入門【第3回】
Yukiko Kato
Javaプログラミング入門【第7回】
Javaプログラミング入門【第7回】
Yukiko Kato
ジェネリクスの基礎と応用 JJUG CCC 2012 Fall
ジェネリクスの基礎と応用 JJUG CCC 2012 Fall
nagise
Equality in Scala (ScalaMatsuri 2020)
Equality in Scala (ScalaMatsuri 2020)
Eugene Yokota
Recomendados
初心者講習会資料(Osaka.R#5)
初心者講習会資料(Osaka.R#5)
Masahiro Hayashi
初心者講習会資料(Osaka.R#7)
初心者講習会資料(Osaka.R#7)
Masahiro Hayashi
Javaプログラミング入門【第3回】
Javaプログラミング入門【第3回】
Yukiko Kato
Javaプログラミング入門【第2回】
Javaプログラミング入門【第2回】
Yukiko Kato
Javaデザインパターン入門【第3回】
Javaデザインパターン入門【第3回】
Yukiko Kato
Javaプログラミング入門【第7回】
Javaプログラミング入門【第7回】
Yukiko Kato
ジェネリクスの基礎と応用 JJUG CCC 2012 Fall
ジェネリクスの基礎と応用 JJUG CCC 2012 Fall
nagise
Equality in Scala (ScalaMatsuri 2020)
Equality in Scala (ScalaMatsuri 2020)
Eugene Yokota
ジェネリクスの基礎とクラス設計への応用
ジェネリクスの基礎とクラス設計への応用
nagise
Essential Scala 第5章 シーケンス処理
Essential Scala 第5章 シーケンス処理
Takuya Tsuchida
普通のプログラミング言語R
普通のプログラミング言語R
Shuyo Nakatani
Yamadai.Rデモンストレーションセッション
Yamadai.Rデモンストレーションセッション
考司 小杉
Lisp tutorial for Pythonista : Day 2
Lisp tutorial for Pythonista : Day 2
Ransui Iso
BOF1-Scala02.pdf
BOF1-Scala02.pdf
Hiroshi Ono
Pythonintro
Pythonintro
Mikio Kubo
JavaのGenericsとは?
JavaのGenericsとは?
Kenji Nakamura
Scala の関数型プログラミングを支える技術
Scala の関数型プログラミングを支える技術
Naoki Aoyama
Material
Material
_TUNE_
PHP, JavaScriptプログラマのためのC#入門
PHP, JavaScriptプログラマのためのC#入門
Tomo Mizoe
たのしい高階関数
たのしい高階関数
Shinichi Kozake
たのしい関数型
たのしい関数型
Shinichi Kozake
ゆるふわScalaコップ本読書会 第7章
ゆるふわScalaコップ本読書会 第7章
Yuta Yokoi
Interpreting Tree Ensembles with inTrees
Interpreting Tree Ensembles with inTrees
Satoshi Kato
R による文書分類入門
R による文書分類入門
Takeshi Arabiki
Imputation of Missing Values using Random Forest
Imputation of Missing Values using Random Forest
Satoshi Kato
What Dotty fixes @ Scala関西サミット
What Dotty fixes @ Scala関西サミット
Taisuke Oe
Packages for data wrangling データ前処理のためのパッケージ
Packages for data wrangling データ前処理のためのパッケージ
Hiroki K
Kobe.R #15 - Incanter チョットシッテル
Kobe.R #15 - Incanter チョットシッテル
tnoda
R in life science2
R in life science2
Yoshiki Tomita
Rデータ処理入門
Rデータ処理入門
Hiroki K
Mais conteúdo relacionado
Mais procurados
ジェネリクスの基礎とクラス設計への応用
ジェネリクスの基礎とクラス設計への応用
nagise
Essential Scala 第5章 シーケンス処理
Essential Scala 第5章 シーケンス処理
Takuya Tsuchida
普通のプログラミング言語R
普通のプログラミング言語R
Shuyo Nakatani
Yamadai.Rデモンストレーションセッション
Yamadai.Rデモンストレーションセッション
考司 小杉
Lisp tutorial for Pythonista : Day 2
Lisp tutorial for Pythonista : Day 2
Ransui Iso
BOF1-Scala02.pdf
BOF1-Scala02.pdf
Hiroshi Ono
Pythonintro
Pythonintro
Mikio Kubo
JavaのGenericsとは?
JavaのGenericsとは?
Kenji Nakamura
Scala の関数型プログラミングを支える技術
Scala の関数型プログラミングを支える技術
Naoki Aoyama
Material
Material
_TUNE_
PHP, JavaScriptプログラマのためのC#入門
PHP, JavaScriptプログラマのためのC#入門
Tomo Mizoe
たのしい高階関数
たのしい高階関数
Shinichi Kozake
たのしい関数型
たのしい関数型
Shinichi Kozake
ゆるふわScalaコップ本読書会 第7章
ゆるふわScalaコップ本読書会 第7章
Yuta Yokoi
Interpreting Tree Ensembles with inTrees
Interpreting Tree Ensembles with inTrees
Satoshi Kato
R による文書分類入門
R による文書分類入門
Takeshi Arabiki
Imputation of Missing Values using Random Forest
Imputation of Missing Values using Random Forest
Satoshi Kato
What Dotty fixes @ Scala関西サミット
What Dotty fixes @ Scala関西サミット
Taisuke Oe
Mais procurados
(18)
ジェネリクスの基礎とクラス設計への応用
ジェネリクスの基礎とクラス設計への応用
Essential Scala 第5章 シーケンス処理
Essential Scala 第5章 シーケンス処理
普通のプログラミング言語R
普通のプログラミング言語R
Yamadai.Rデモンストレーションセッション
Yamadai.Rデモンストレーションセッション
Lisp tutorial for Pythonista : Day 2
Lisp tutorial for Pythonista : Day 2
BOF1-Scala02.pdf
BOF1-Scala02.pdf
Pythonintro
Pythonintro
JavaのGenericsとは?
JavaのGenericsとは?
Scala の関数型プログラミングを支える技術
Scala の関数型プログラミングを支える技術
Material
Material
PHP, JavaScriptプログラマのためのC#入門
PHP, JavaScriptプログラマのためのC#入門
たのしい高階関数
たのしい高階関数
たのしい関数型
たのしい関数型
ゆるふわScalaコップ本読書会 第7章
ゆるふわScalaコップ本読書会 第7章
Interpreting Tree Ensembles with inTrees
Interpreting Tree Ensembles with inTrees
R による文書分類入門
R による文書分類入門
Imputation of Missing Values using Random Forest
Imputation of Missing Values using Random Forest
What Dotty fixes @ Scala関西サミット
What Dotty fixes @ Scala関西サミット
Destaque
Packages for data wrangling データ前処理のためのパッケージ
Packages for data wrangling データ前処理のためのパッケージ
Hiroki K
Kobe.R #15 - Incanter チョットシッテル
Kobe.R #15 - Incanter チョットシッテル
tnoda
R in life science2
R in life science2
Yoshiki Tomita
Rデータ処理入門
Rデータ処理入門
Hiroki K
R6 classes
R6 classes
hiroki84
Mad kobe.r14
Mad kobe.r14
florets1
サポートベクトルマシン入門
サポートベクトルマシン入門
Wakamatz
Factor型の注意点
Factor型の注意点
Hiroki K
Kobe.R #18: 本の紹介: 通称「緑本」
Kobe.R #18: 本の紹介: 通称「緑本」
tnoda
R in life science
R in life science
Yoshiki Tomita
Destaque
(10)
Packages for data wrangling データ前処理のためのパッケージ
Packages for data wrangling データ前処理のためのパッケージ
Kobe.R #15 - Incanter チョットシッテル
Kobe.R #15 - Incanter チョットシッテル
R in life science2
R in life science2
Rデータ処理入門
Rデータ処理入門
R6 classes
R6 classes
Mad kobe.r14
Mad kobe.r14
サポートベクトルマシン入門
サポートベクトルマシン入門
Factor型の注意点
Factor型の注意点
Kobe.R #18: 本の紹介: 通称「緑本」
Kobe.R #18: 本の紹介: 通称「緑本」
R in life science
R in life science
Semelhante a 初心者講習会資料(Osaka.r#6)
第一回Data mining勉強会 -第二章 - 原案
第一回Data mining勉強会 -第二章 - 原案
yushin_hirano
第一回Data mining勉強会 -第二章
第一回Data mining勉強会 -第二章
Tomonobu_Hirano
言語処理系入門3
言語処理系入門3
Kenta Hattori
第一回ゆるふわーる
第一回ゆるふわーる
Sachiko Hirata
Lisp Tutorial for Pythonista : Day 3
Lisp Tutorial for Pythonista : Day 3
Ransui Iso
Tokyor23 doradora09
Tokyor23 doradora09
Nobuaki Oshiro
Rで学ぶデータマイニングI 第8章〜第13章
Rで学ぶデータマイニングI 第8章〜第13章
Prunus 1350
プログラミング言語Scala
プログラミング言語Scala
TanUkkii
Ruby紹介3(pdf)
Ruby紹介3(pdf)
Gohryuh
20170923 excelユーザーのためのr入門
20170923 excelユーザーのためのr入門
Takashi Kitano
Python opt
Python opt
Mikio Kubo
Aedlabo program 20150125
Aedlabo program 20150125
としゆき 高橋
Introduction Xtend
Introduction Xtend
Hideki Kishida
今さら聞けないHadoop勉強会第3回 セントラルソフト株式会社(20120327)
今さら聞けないHadoop勉強会第3回 セントラルソフト株式会社(20120327)
YoheiOkuyama
統計環境R_データ入出力編2016
統計環境R_データ入出力編2016
wada, kazumi
12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと
12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと
Haruka Ozaki
プログラムの処方箋~健康なコードと病んだコード
プログラムの処方箋~健康なコードと病んだコード
Shigenori Sagawa
はじめての「R」
はじめての「R」
Masahiro Hayashi
RSpecのここがすごい!
RSpecのここがすごい!
mitim
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門
Koichi Hamada
Semelhante a 初心者講習会資料(Osaka.r#6)
(20)
第一回Data mining勉強会 -第二章 - 原案
第一回Data mining勉強会 -第二章 - 原案
第一回Data mining勉強会 -第二章
第一回Data mining勉強会 -第二章
言語処理系入門3
言語処理系入門3
第一回ゆるふわーる
第一回ゆるふわーる
Lisp Tutorial for Pythonista : Day 3
Lisp Tutorial for Pythonista : Day 3
Tokyor23 doradora09
Tokyor23 doradora09
Rで学ぶデータマイニングI 第8章〜第13章
Rで学ぶデータマイニングI 第8章〜第13章
プログラミング言語Scala
プログラミング言語Scala
Ruby紹介3(pdf)
Ruby紹介3(pdf)
20170923 excelユーザーのためのr入門
20170923 excelユーザーのためのr入門
Python opt
Python opt
Aedlabo program 20150125
Aedlabo program 20150125
Introduction Xtend
Introduction Xtend
今さら聞けないHadoop勉強会第3回 セントラルソフト株式会社(20120327)
今さら聞けないHadoop勉強会第3回 セントラルソフト株式会社(20120327)
統計環境R_データ入出力編2016
統計環境R_データ入出力編2016
12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと
12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと
プログラムの処方箋~健康なコードと病んだコード
プログラムの処方箋~健康なコードと病んだコード
はじめての「R」
はじめての「R」
RSpecのここがすごい!
RSpecのここがすごい!
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門
Mais de Masahiro Hayashi
オレオレR-GUIを作りたい
オレオレR-GUIを作りたい
Masahiro Hayashi
Rzパッケージの紹介
Rzパッケージの紹介
Masahiro Hayashi
重回帰職人の朝は早い
重回帰職人の朝は早い
Masahiro Hayashi
Rzパッケージ―spssのようなデータ管理インターフェイス
Rzパッケージ―spssのようなデータ管理インターフェイス
Masahiro Hayashi
はじめてでもわかるデータ入出力
はじめてでもわかるデータ入出力
Masahiro Hayashi
RGtk2入門
RGtk2入門
Masahiro Hayashi
Mais de Masahiro Hayashi
(6)
オレオレR-GUIを作りたい
オレオレR-GUIを作りたい
Rzパッケージの紹介
Rzパッケージの紹介
重回帰職人の朝は早い
重回帰職人の朝は早い
Rzパッケージ―spssのようなデータ管理インターフェイス
Rzパッケージ―spssのようなデータ管理インターフェイス
はじめてでもわかるデータ入出力
はじめてでもわかるデータ入出力
RGtk2入門
RGtk2入門
Último
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
Último
(7)
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
初心者講習会資料(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
Baixar agora