シミュレーション・データの準備とR言語の基本的な機能
2024-04-19
単純な小売業を例に
Exercise 1
Step 1. 本書のサポートサイトのS3にアクセス.
Step 2. Zipファイルをダウンロード.
Step 3. Posit CloudにダウンロードしたZipファイルをアップロード.
Step 4. empirical-accounting-and-finance-in-r-main
フォルダを選択し,Renameによりcodes
フォルダへと識別可能性の観点から名前変更.
Step 1. 本書のサポートサイトのS2にアクセス.
Step 2. Zipファイルをダウンロード.
Step 3. 教科書「まえがき」ivページに記載のパスワードを入力して解凍.
Step 4. 解凍されたファイルを再度圧縮し,改めてZipファイルを作成.
Step 5. Posit Cloudに先の手順により作成されたZipファイルをアップロード.
pi
という変数として記憶したい場合は,以下のように書けば良い.変数に何かを代入するときは=
演算子は使わず,<-
演算子を使うのがポイント!
ひとたびpi
を定義すれば,例えば,半径4の円の面積S
を求めるとき,pi
を使って計算することができる.
可読性の高いコードを目指して
Rは「半角スペース」を無視するので,あってもなくてもコード上は一緒.ただし,可読性の観点から様々な作法が存在する.GoogleのRユーザー・コミュニティでは,例えば,二項演算子 (binary operators)の前後には半角スペースを挿入することが徹底されている.
x
として定義する場合は,以下の通りである.c()
関数はベクトルを作成する関数であり,c
はconcatenate(連結する)の略である._
(アンダースコア),.
(ピリオド)sales_growth
(売上高増加率), FY2020.EARNINGS
(2020年度の利益)数字からははじまる変数は付けられない (ダメな例: 2020_earnings
, 001Variable
)
大文字と小文字は区別されるので,Sales
とsales
は別々の変数として認識される.
プログラミング全般での名前の付け方の作法
salesGrowth
, annualStockData
SalesGrowth
, AnnualStockData
sales_growth
, annual_stock_data
sales-growth
, annual-stock-data
Exercise 2
20点,35点,40点,70点,95点という5人の成績を示したテストの点数 (Test Score)を表すベクトルを作成してみよう.なお,命名規則は,スネークケースによること.
平均点を求めてみよう.
mean()
関数の第一引数に先に作成したTest Scoreのベクトルを代入すればオッケー!N
とする新たな変数を作成しよう.mean()
関数は平均値を返すが,同様に,length()
関数はベクトルの次元を返す.R
ベクトルを作ってみよう!引数 (arguments)とは
関数に受け渡す値を指し,例えば三つの引数を取る関数 example_function(A, B, C)
に関して,A
を第一引数,B
を第二引数,C
を第三引数と呼ぶ.関数ごとに引数の数や指定の仕方は異なる.
R <- seq(0.1, 0.2, 0.01)
は,R <- seq(from = 0.1, to = 0.2, by = 0.01)
の省略形である.seq()
関数の場合,引数名が省略されていると,最初の三つの引数はそれぞれ等差数列の始点 (from
),終点 (to
),差分 (by
)と解釈し,実行してくれる.help(関数名)
あるいは?関数名
と打つことで,関数のヘルプを表示できることも知っておこう.R[2]
とすれば,2番目の要素が参照できる.要素の指定は変数を用いて行うこともでき,i <- 2
と定義しておけば,R[i]
は2番目の要素を表す.R[2:5]
と入力すれば良い.一般にコロン (:
)は公差が1の等差数列を作成するために用いられ,2:5
はc(2, 3, 4, 5)
という4次元ベクトルを作成する.R[2:length(R)]
と入力する.length()
関数は,Exercise 2で学習したように,ベクトルの次元を返すので,ここではlength(R)
は11
となる.(10, 11)
という2次元ベクトルと,ABC
という文字列をそれぞれの要素として含んでいる.リストは要素の参照方法が通常のベクトルと異なり,カッコを二重にする.x
の1番目の要素を参照するには,x[[1]]
と指定.上の例だと,x[[1]]
は(10, 11)
というベクトルであるため,そのうち11
を参照したければ,x[[1]][2]
と指定.x[[1]]
と同じ内容を参照するのに,x$ID
と指定することもできる.x[ , 1]
として特定の次元を空白とすると,その次元は全ての要素が指定される.したがって,x[ , 1]
はx$ID
と全く同じ参照となる.for
文の使い方for
文の概要for
文とは?
for (
Variable Name in
Sequence) {
Do Something
}
for
文のように,コードのどの行が実行されるか順序を制御する構文のことを,一般に制御構文と呼ぶ.for
文の練習問題Exercise 3
(ヒント!)
asum
を作成し,初期値として0
を代入する.i in 1:10
としてasum
にi = 1
から10
を次々に代入し,asum
の計算結果を更新print()
関数を使って,asum
を表示させる.for
文を使った発展問題Exercise 4
(ヒント!)
seq()
関数を使えば作成することができる.忘れている人は,ここを参照.a
\(=(2, 5, \ldots, 29)\)として定義すれば,初項はa[1]
,第2項はa[2]
で参照することができる.忘れている人は,要素へのアクセスを確認しよう.2024経営データ分析(会計)