SlideShare a Scribd company logo
1 of 19
Download to read offline
第2回 R言語勉強会
信州大学 久保琢也
2020年10月30日
前回のおさらい
# 変数に値を代入
X <- 3
Y <- 5
# 変数を使った計算
Z <- X + Y
# 関数を使った計算
sqrt( Z )
今日の内容
ベクトル
今日の内容
ベクトル
同じ型の複数の値をまとめたもの
⇨ 複数の値をまとめて計算できる!
ベクトルの作り方
❖ ベクトルを作る関数
−
− c( 値1, 値2, 値3, …)
− ※文字を扱う場合は各値を「 」で囲むこと
c( ) ※Concatenate
# 数値型ベクトルを作る
num <- c( 1, 3, 5, 7, 9, 11 )
# 文字型ベクトルを作る
char <- c( A , a , a , B , b , b )
# 論理型ベクトルを作る
logic <- c( T, T, T, T, F, F ) # T = TRUE, F = FALSE
ベクトルを使った計算
❖ 算術演算子、比較演算子を用いた計算
# 四則演算
num + 2
# 5以上の値か否か
num >= 5
# ベクトル同士の計算
num + num
# 文字列が特定の値か否か
char == a
char != B
ベクトルを使った計算
❖ 関数を使った計算(数字)
# numの要素の数を取得
length( num )
# numの合計を計算
sum( num )
# numの平均値を計算
mean( num )
# numの最小値を計算
min( num )
# numの最大値を計算
max( num )
ベクトルを使った計算
❖ 関数を使った計算(文字)
# 大文字に変換
toupper( char )
# 小文字に変換
tolower( char )
# 文字数の取得
nchar( char )
# char の A を X に置換
gsub( A , X , char )
# char の 各値に 大学 を結合
paste0( char, 大学 )
ベクトルを使った計算
❖ 関数を使った計算(論理)
# 全ての要素が TRUE かどうか
all( logic )
# TRUEが含まれるかどうか
any( logic )
# TRUEの個数
sum( logic ) # TRUEは 1 , FALSEは 0
ベクトルを作るときに便利
# 連続する整数
1 : 10
# 等差数列
seq( 0, 10, 2 ) # 0 から 10 まで 2 刻み
# 繰り返し
rep( 1, 3 ) # 1 を 3 回繰り返す
rep( 1 : 3, 3 ) # 1 : 3 を 3 回繰り返す
ベクトルの各要素へのアクセス
❖ ベクトルのインデクス
# 2番目の要素にアクセス
num[ 2 ]
# 3番目から5番目の要素にアクセス
num[ c( 3, 4, 5 ) ]
num[ 3 : 5 ]
# 3番目から5番目以外の要素にアクセス
num[ - c( 3, 4, 5 ) ]
num[ - ( 3 : 5 ) ]
num
Index ① ② ③ ④ ⑤ ⑥
値 1 3 5 7 9 11
ベクトルの各要素を書き換える
❖ ベクトル内のインデクス
# 1番目の要素に 350 を代入
num[ 1 ] <- 350
# 2番目、3番目の要素に 400 を代入
num[ c( 2, 3 ) ] <- 400
# 4番目、5番目、6番目の要素に 300, 400, 500 を代入
num[ 4 : 6 ] <- c( 300, 400, 500 )
# numの中身を確認
num
num
Index ① ② ③ ④ ⑤ ⑥
値 1 3 5 7 9 11
ベクトルを用いた集計
❖ 下準備:ベクトルを作る
# 大学名ベクトルを作る
univ <- paste0( toupper( char ), 大学 )
# 研究種目ベクトルを作る
type <- rep( c( 若手 , C ), 3 )
univ
A大学
A大学
A大学
B大学
B大学
B大学
type
若手
C
若手
C
若手
C
num
350
400
400
300
400
500
ベクトルを用いた集計
❖ table( )による集計
# 大学名の個数を集計する
table( univ )
# 大学名と研究種目でデータの個数をクロス集計
table( univ, type )
univ
A大学
A大学
A大学
B大学
B大学
B大学
type
若手
C
若手
C
若手
C
num
350
400
400
300
400
500
ベクトルを用いた集計
❖ xtabs( )による集計
# 大学名と研究種目でデータの個数をクロス集計
kosu <- xtabs( univ + type )
# 大学名と研究種目でnumの合計をクロス集計
gokei <- xtabs( num univ + type )
univ
A大学
A大学
A大学
B大学
B大学
B大学
type
若手
C
若手
C
若手
C
num
350
400
400
300
400
500
ベクトルを用いた集計
❖ xtabs( )による集計
# 大学名と研究種目で num の平均をクロス集計
gokei / kosu
univ
A大学
A大学
A大学
B大学
B大学
B大学
type
若手
C
若手
C
若手
C
num
350
400
400
300
400
500
❖ データ型の例
データ型
データ型 例
整数型(integer) -5, -2, 3, 7, 10
数値型(numeric) 3.14, 1.41, 1.73
論理型(logical)
TRUE / FALSE, T / F
※ TRUEは1FALSEは0
文字型(character)
A , B , a , 大学
※ 文字列は必ず「 」で囲む
因子型(factor)
文字型要素が順序を持ったもの。統
計モデリングやグラフ化の際によく
用いる。
データ型
❖ 異なるデータ型でベクトルを作ると
− データ型が異なる要素からベクトルを作ろうとすると、
データ型の強制が起こる
− 予期せぬ自体が生じる可能性があるので、データ型を意
識しておくことが大事
# 数字と文字でベクトルを作ろうとすると
c( 1, 2, 3, A , B )
# 数字とTRUE/FALSEでベクトルを作ろうとすると
c( 1 : 3, TRUE, FALSE )
次回の準備をお願いします
❖ KAKENより採択課題情報ダウンロード
− 期間:2018年∼2020年
− 種目:基盤研究(S)
− 形式:CSVファイル
https://kaken.nii.ac.jp

More Related Content

Similar to R言語勉強会#2.pdf

初心者講習会資料(Osaka.R#5)
初心者講習会資料(Osaka.R#5)初心者講習会資料(Osaka.R#5)
初心者講習会資料(Osaka.R#5)Masahiro Hayashi
 
10分で分かるr言語入門ver2.14 15 0905
10分で分かるr言語入門ver2.14 15 090510分で分かるr言語入門ver2.14 15 0905
10分で分かるr言語入門ver2.14 15 0905Nobuaki Oshiro
 
KETpic できれいな図を書こう
KETpic できれいな図を書こうKETpic できれいな図を書こう
KETpic できれいな図を書こうYoshitomo Akimoto
 
[第2版]Python機械学習プログラミング 第8章
[第2版]Python機械学習プログラミング 第8章[第2版]Python機械学習プログラミング 第8章
[第2版]Python機械学習プログラミング 第8章Haruki Eguchi
 
10分で分かるr言語入門ver2.10 14 1101
10分で分かるr言語入門ver2.10 14 110110分で分かるr言語入門ver2.10 14 1101
10分で分かるr言語入門ver2.10 14 1101Nobuaki Oshiro
 
研究生のためのC++ no.3
研究生のためのC++ no.3研究生のためのC++ no.3
研究生のためのC++ no.3Tomohiro Namba
 
わんくま同盟大阪勉強会#61
わんくま同盟大阪勉強会#61わんくま同盟大阪勉強会#61
わんくま同盟大阪勉強会#61TATSUYA HAYAMIZU
 
Clojure programming-chapter-2
Clojure programming-chapter-2Clojure programming-chapter-2
Clojure programming-chapter-2Masao Kato
 
R言語勉強会#10.pdf
R言語勉強会#10.pdfR言語勉強会#10.pdf
R言語勉強会#10.pdfTakuya Kubo
 
C++0x 言語の未来を語る
C++0x 言語の未来を語るC++0x 言語の未来を語る
C++0x 言語の未来を語るAkira Takahashi
 
すごいHaskell読書会 第7章 (前編)
すごいHaskell読書会 第7章 (前編)すごいHaskell読書会 第7章 (前編)
すごいHaskell読書会 第7章 (前編)Suguru Hamazaki
 
データとは何か
データとは何かデータとは何か
データとは何かKenta Suzuki
 
C#のキモイ高速プログラミング
C#のキモイ高速プログラミングC#のキモイ高速プログラミング
C#のキモイ高速プログラミングKaisei Sunaga
 

Similar to R言語勉強会#2.pdf (15)

初心者講習会資料(Osaka.R#5)
初心者講習会資料(Osaka.R#5)初心者講習会資料(Osaka.R#5)
初心者講習会資料(Osaka.R#5)
 
10分で分かるr言語入門ver2.14 15 0905
10分で分かるr言語入門ver2.14 15 090510分で分かるr言語入門ver2.14 15 0905
10分で分かるr言語入門ver2.14 15 0905
 
R language definition3.1_3.2
R language definition3.1_3.2R language definition3.1_3.2
R language definition3.1_3.2
 
KETpic できれいな図を書こう
KETpic できれいな図を書こうKETpic できれいな図を書こう
KETpic できれいな図を書こう
 
[第2版]Python機械学習プログラミング 第8章
[第2版]Python機械学習プログラミング 第8章[第2版]Python機械学習プログラミング 第8章
[第2版]Python機械学習プログラミング 第8章
 
10分で分かるr言語入門ver2.10 14 1101
10分で分かるr言語入門ver2.10 14 110110分で分かるr言語入門ver2.10 14 1101
10分で分かるr言語入門ver2.10 14 1101
 
研究生のためのC++ no.3
研究生のためのC++ no.3研究生のためのC++ no.3
研究生のためのC++ no.3
 
わんくま同盟大阪勉強会#61
わんくま同盟大阪勉強会#61わんくま同盟大阪勉強会#61
わんくま同盟大阪勉強会#61
 
Clojure programming-chapter-2
Clojure programming-chapter-2Clojure programming-chapter-2
Clojure programming-chapter-2
 
R言語勉強会#10.pdf
R言語勉強会#10.pdfR言語勉強会#10.pdf
R言語勉強会#10.pdf
 
C++0x 言語の未来を語る
C++0x 言語の未来を語るC++0x 言語の未来を語る
C++0x 言語の未来を語る
 
ji-6. 配列
ji-6. 配列ji-6. 配列
ji-6. 配列
 
すごいHaskell読書会 第7章 (前編)
すごいHaskell読書会 第7章 (前編)すごいHaskell読書会 第7章 (前編)
すごいHaskell読書会 第7章 (前編)
 
データとは何か
データとは何かデータとは何か
データとは何か
 
C#のキモイ高速プログラミング
C#のキモイ高速プログラミングC#のキモイ高速プログラミング
C#のキモイ高速プログラミング
 

More from Takuya Kubo

R言語勉強会#0.pdf
R言語勉強会#0.pdfR言語勉強会#0.pdf
R言語勉強会#0.pdfTakuya Kubo
 
テーマ別勉強会(R言語)#4.pdf
テーマ別勉強会(R言語)#4.pdfテーマ別勉強会(R言語)#4.pdf
テーマ別勉強会(R言語)#4.pdfTakuya Kubo
 
テーマ別勉強会(R言語)#3.pdf
テーマ別勉強会(R言語)#3.pdfテーマ別勉強会(R言語)#3.pdf
テーマ別勉強会(R言語)#3.pdfTakuya Kubo
 
テーマ別勉強会(R言語)#2.pdf
テーマ別勉強会(R言語)#2.pdfテーマ別勉強会(R言語)#2.pdf
テーマ別勉強会(R言語)#2.pdfTakuya Kubo
 
R言語勉強会#9.pdf
R言語勉強会#9.pdfR言語勉強会#9.pdf
R言語勉強会#9.pdfTakuya Kubo
 
R言語勉強会#8.pdf
R言語勉強会#8.pdfR言語勉強会#8.pdf
R言語勉強会#8.pdfTakuya Kubo
 
R言語勉強会#7.pdf
R言語勉強会#7.pdfR言語勉強会#7.pdf
R言語勉強会#7.pdfTakuya Kubo
 
R言語勉強会#6.pdf
R言語勉強会#6.pdfR言語勉強会#6.pdf
R言語勉強会#6.pdfTakuya Kubo
 
R言語勉強会#5.pdf
R言語勉強会#5.pdfR言語勉強会#5.pdf
R言語勉強会#5.pdfTakuya Kubo
 
R言語勉強会#4.pdf
R言語勉強会#4.pdfR言語勉強会#4.pdf
R言語勉強会#4.pdfTakuya Kubo
 
R言語勉強会#3.pdf
R言語勉強会#3.pdfR言語勉強会#3.pdf
R言語勉強会#3.pdfTakuya Kubo
 
R言語勉強会#1.pdf
R言語勉強会#1.pdfR言語勉強会#1.pdf
R言語勉強会#1.pdfTakuya Kubo
 

More from Takuya Kubo (12)

R言語勉強会#0.pdf
R言語勉強会#0.pdfR言語勉強会#0.pdf
R言語勉強会#0.pdf
 
テーマ別勉強会(R言語)#4.pdf
テーマ別勉強会(R言語)#4.pdfテーマ別勉強会(R言語)#4.pdf
テーマ別勉強会(R言語)#4.pdf
 
テーマ別勉強会(R言語)#3.pdf
テーマ別勉強会(R言語)#3.pdfテーマ別勉強会(R言語)#3.pdf
テーマ別勉強会(R言語)#3.pdf
 
テーマ別勉強会(R言語)#2.pdf
テーマ別勉強会(R言語)#2.pdfテーマ別勉強会(R言語)#2.pdf
テーマ別勉強会(R言語)#2.pdf
 
R言語勉強会#9.pdf
R言語勉強会#9.pdfR言語勉強会#9.pdf
R言語勉強会#9.pdf
 
R言語勉強会#8.pdf
R言語勉強会#8.pdfR言語勉強会#8.pdf
R言語勉強会#8.pdf
 
R言語勉強会#7.pdf
R言語勉強会#7.pdfR言語勉強会#7.pdf
R言語勉強会#7.pdf
 
R言語勉強会#6.pdf
R言語勉強会#6.pdfR言語勉強会#6.pdf
R言語勉強会#6.pdf
 
R言語勉強会#5.pdf
R言語勉強会#5.pdfR言語勉強会#5.pdf
R言語勉強会#5.pdf
 
R言語勉強会#4.pdf
R言語勉強会#4.pdfR言語勉強会#4.pdf
R言語勉強会#4.pdf
 
R言語勉強会#3.pdf
R言語勉強会#3.pdfR言語勉強会#3.pdf
R言語勉強会#3.pdf
 
R言語勉強会#1.pdf
R言語勉強会#1.pdfR言語勉強会#1.pdf
R言語勉強会#1.pdf
 

R言語勉強会#2.pdf