文字列などの演算子を利用することができるパッケージの紹介です。文字列演算子、代入演算子、範囲に含まれるか、浮動小数点を認識、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
少しでも、あなたの解析が楽になりますように!!