はじめに
機械学習の勉強を始めたVBAユーザです。
備忘録としてPython・Rの文法をVBAと比較しながらまとめていきたいと思います。
目次
基本的な算術演算
四則演算
まず、四則演算(加算・減算・乗算・除算)です。四則演算の演算子 +
, -
, *
, /
はどの言語でも共通です。
Python
Python3
print( 1 + 2 ) # 加算
print( 3 - 4 ) # 減算
print( 5 * 6 ) # 乗算
print( 7 / 8 ) # 除算
Python2では、除数(割る数)と被除数(割られる数)が整数の場合に/
で除算すると切り捨て除算となります。
R
R
print( 1 + 2 ) # 加算
print( 3 - 4 ) # 減算
print( 5 * 6 ) # 乗算
print( 7 / 8 ) # 除算
VBA
VBA
Debug.Print 1 + 2 ' 加算
Debug.Print 3 - 4 ' 減算
Debug.Print 5 * 6 ' 乗算
Debug.Print 7 / 8 ' 除算
べき乗と整数の割り算
次に、べき乗(累乗)、整数の除算(商(整数商)と剰余(余り))の計算です。言語によって演算子が違います。
Python
Python3
print( 2 ** 3 ) # べき乗
print( 5 // 3 ) # 整数商
print( 5 % 3 ) # 剰余
print( divmod(5, 3) ) # 整数商と剰余
Pythonのdivmod
関数はtupleを返します。divmod(5, 3)
の結果はtuple(1, 2)
となります。
R
R
print( 2 ^ 3 ) # べき乗
print( 5 %/% 3 ) # 整数商
print( 5 %% 3 ) # 剰余
VBA
VBA
Debug.Print 2 ^ 3 ' べき乗
Debug.Print 5 \ 3 ' 整数商
Debug.Print 5 Mod 3 ' 剰余
Debug.Print Int(5 / 3) ' 整数商(Int関数で整数部分を取得)
VBAの整数商の計算「5 \ 3」のバックスラッシュ「\」は半角円マークです。
符号反転と絶対値
最後に、符号反転と絶対値の計算です。
Python
Python3
print( -2 ) # 符号反転
print( abs(-2) ) # 絶対値
R
R
print( -2 ) # 符号反転
print( abs(-2) ) # 絶対値
VBA
VBA
Debug.Print -2 ' 符号反転
Debug.Print Abs(-1) ' 絶対値
まとめ
一覧
各言語で使用する演算子・関数等を一覧にまとめます。比較のために、EXCELでの計算も示しました。
演算 | 例 | Python | R | VBA | EXCEL | 結果 |
---|---|---|---|---|---|---|
加算 | $1+2$ | 1 + 2 | 1 + 2 | 1 + 2 | =1+2 | 3 |
減算 | $3-4$ | 3 - 4 | 3 - 4 | 3 - 4 | =3-4 | -1 |
乗算 | $5*6$ | 5 * 6 | 5 * 6 | 5 * 6 | =5*6 | 30 |
除算 | $7/8$ | 7 / 8 | 7 / 8 | 7 / 8 | =7/8 | 0.875 |
べき乗 | $2^3$ | 2 ** 3 | 2 ^ 3 | 2 ^ 3 | =2^3 | 8 |
整数商 | $5/3$ | 5 // 3 | 5 %/% 3 | 5 ¥ 3 | =QUOTIENT(5,3) | 1 |
剰余 | $5/3$ | 5 % 3 | 5 %% 3 | 5 Mod 3 | =MOD(5,3) | 2 |
divmod(5, 3) | (1, 2) | |||||
符号反転 | $-2$ | -2 | -2 | -2 | =-2 | -2 |
絶対値 | $|-2|$ | abs(-2) | abs(-2) | Abs(-2) | =ABS(-2) | 2 |
VBAの「¥」は円マーク(全角の円マークを入れていますが、実際には半角の円マークです。)。
プログラム全体
参考までに使ったプログラムの全体を示します。
Python
Python3
# 四則演算
print( 1 + 2 ) # 加算
print( 3 - 4 ) # 減算
print( 5 * 6 ) # 乗算
print( 7 / 8 ) # 除算
# べき乗と整数の割り算
print( 2 ** 3 ) # べき乗
print( 5 // 3 ) # 整数商
print( 5 % 3 ) # 剰余
print( divmod(5, 3) ) # 整数商と剰余
# 符号反転と絶対値
print( -2 ) # 符号反転
print( abs(-2) ) # 絶対値
R
R
# 四則演算
print( 1 + 2 ) # 加算
print( 3 - 4 ) # 減算
print( 5 * 6 ) # 乗算
print( 7 / 8 ) # 除算
# べき乗と整数の割り算
print( 2 ^ 3 ) # べき乗
print( 5 %/% 3 ) # 整数商
print( 5 %% 3 ) # 剰余
# 符号反転と絶対値
print( -2 ) # 符号反転
print( abs(-2) ) # 絶対値
VBA
VBA
Sub test()
' 四則演算
Debug.Print 1 + 2 ' 加算
Debug.Print 3 - 4 ' 減算
Debug.Print 5 * 6 ' 乗算
Debug.Print 7 / 8 ' 除算
' べき乗と整数の割り算
Debug.Print 2 ^ 3 ' べき乗
Debug.Print 5 \ 3 ' 整数商
Debug.Print 5 Mod 3 ' 剰余
Debug.Print Int(5 / 3) ' 整数商(Int関数で整数部分を取得)
' 符号反転と絶対値
Debug.Print -2 ' 符号反転
Debug.Print Abs(-1) ' 絶対値
End Sub
VBAの整数商の計算「5 \ 3」のバックスラッシュ「\」は半角円マークです。