文字列などの演算子を利用することができるパッケージの紹介です。文字列演算子、代入演算子、範囲に含まれるか、浮動小数点を認識、classも含めて同じか判定、XOR演算子などが収録されています。コマンドの可読性向上だけでなくPythonなどに慣れている方は利用してはいかがでしょうか。
パッケージのバージョンは1.2.0。実行コマンドはwindows 11のR version 4.1.2で確認しています。
パッケージのインストール
下記コマンドを実行してください。
#パッケージのインストール
install.packages("roperators")
実行コマンド
詳細はコメント、パッケージヘルプを確認してください。
#パッケージの読み込み
library("roperators")
###文字列演算子#####
JPNCharVec <- c("からだにいいもの!!_")
JPNCharVec_2 <- c("からだに", "いいもの", "KARADA", "GOOD")
ENGCharVec <- c("KARADA-GOOD\\")
#結合:%+%コマンド
JPNCharVec %+% ENGCharVec
[1] "からだにいいもの!!_KARADA-GOOD\\"
#削除:%-%コマンド
JPNCharVec %-% "に|!!|_"
[1] "からだいいもの"
#繰り返し:%s*%コマンド
JPNCharVec %s*% 2
からだにいいもの!!_
"からだにいいもの!!_からだにいいもの!!_"
#文字のカウント:%s/%コマンド
JPNCharVec %s/% "か|い"
か|い
3
#正規表現の適応:%regex=%コマンド
#代入されるのでデータが変わります
print(JPNCharVec %regex=% c("\\い+", "i"))
[1] "からだにiもの!!_"
#例_組み合わせ
JPNCharVec <- c("からだにいいもの!!_")
JPNCharVec %-% "に|!!|_" %s*% 2
からだいいもの
"からだいいものからだいいもの"
########
###代入演算子#####
###注意:代入なので結果が保存されます#####
#加算:%+=%
NumVec <- 1:5
print(NumVec %+=% 1)
[1] 2 3 4 5 6
#減算:%-=%
NumVec <- 1:5
print(NumVec %-=% 1)
[1] 0 1 2 3 4
#乗算:%*=%
NumVec <- 1:5
print(NumVec %*=% 2)
[1] 2 4 6 8 10
#除算:%/=%
NumVec <- 1:5
print(NumVec %/=% 2)
[1] 0.5 1.0 1.5 2.0 2.5
#べき乗:%^=%
NumVec <- 1:5
print(NumVec %^=% 2)
[1] 1 4 9 16 25
#log:%log=%
NumVec <- 1:5
print(NumVec %log=% 2)
[1] 0.000000 1.000000 1.584963 2.000000 2.321928
#ルート:%root=%
NumVec <- 1:5
print(NumVec %root=% 2)
[1] 1.000000 1.414214 1.732051 2.000000 2.236068
###その他の演算子#####
#最小< X <最大の範囲に含まれるか:%><%コマンド
#範囲指定:c(最小, 最大)
c(1, 2) %><% c(1, 3)
[1] FALSE TRUE
#最小<= X <=最大の範囲に含まれるか:%>=<%コマンド
1 %>=<% c(1, 3)
[1] TRUE
#if(a == b):%==%コマンド
#NAも認識
a <- c("か", NA, "だ", "い")
b <- c("か", NA, "ら", "い")
a %==% b
[1] TRUE TRUE FALSE TRUE
#含まれていないか確認:%ni%コマンド
#含まれているのでFALSE
"K" %ni% c("K", "ら", "だ")
[1] FALSE
#XOR演算子:%xor%コマンド
#演算子挟んで同じまたは違うでFALSE
c(1, 3) %xor% c(4, 5)
[1] FALSE FALSE
#全て同じか判定:%aon%コマンド
c(1, 1) %aon% c(1, 1)
[1] TRUE
#浮動小数点を認識:%~=%コマンド
#その他:%>~%コマンド, %<~%コマンドがあります
#(0.1 * 3) == 0.3
#[1] FALSE
(0.1 * 3) %~=% 0.3
[1] TRUE
#参考
#isTRUE(all.equal(0.1 * 3, 0.3))
#classも含めて同じか判定:%===%コマンド
num(1) %===% int(1)
[1] FALSE
少しでも、あなたの解析が楽になりますように!!