Rで解析:Rでも演算子を使えます!!「roperators」パッケージ

Rの解析に役に立つ記事
スポンサーリンク

文字列などの演算子を利用することができるパッケージの紹介です。文字列演算子、代入演算子、範囲に含まれるか、浮動小数点を認識、classも含めて同じか判定、XOR演算子などが収録されています。コマンドの可読性向上だけでなくPythonなどに慣れている方は利用してはいかがでしょうか。

パッケージのバージョンは1.2.0。実行コマンドはwindows 11のR version 4.1.2で確認しています。

スポンサーリンク

パッケージのインストール

下記コマンドを実行してください。

#パッケージのインストール
install.packages("roperators")

実行コマンド

詳細はコメント、パッケージヘルプを確認してください。

#パッケージの読み込み
library("roperators")

###文字列演算子#####
JPNCharVec <- c("&#12363;&#12425;&#12384;&#12395;&#12356;&#12356;&#12418;&#12398;!!_")
JPNCharVec_2 <- c("&#12363;&#12425;&#12384;&#12395;", "&#12356;&#12356;&#12418;&#12398;", "KARADA", "GOOD")
ENGCharVec <- c("KARADA-GOOD\\")

#&#32080;&#21512;:%+%&#12467;&#12510;&#12531;&#12489;
JPNCharVec %+% ENGCharVec
[1] "&#12363;&#12425;&#12384;&#12395;&#12356;&#12356;&#12418;&#12398;!!_KARADA-GOOD\\"

#&#21066;&#38500;:%-%&#12467;&#12510;&#12531;&#12489;
JPNCharVec %-% "&#12395;|!!|_"
[1] "&#12363;&#12425;&#12384;&#12356;&#12356;&#12418;&#12398;"

#&#32368;&#12426;&#36820;&#12375;:%s*%&#12467;&#12510;&#12531;&#12489;
JPNCharVec %s*% 2
&#12363;&#12425;&#12384;&#12395;&#12356;&#12356;&#12418;&#12398;!!_ 
"&#12363;&#12425;&#12384;&#12395;&#12356;&#12356;&#12418;&#12398;!!_&#12363;&#12425;&#12384;&#12395;&#12356;&#12356;&#12418;&#12398;!!_" 

#&#25991;&#23383;&#12398;&#12459;&#12454;&#12531;&#12488;:%s/%&#12467;&#12510;&#12531;&#12489;
JPNCharVec %s/% "&#12363;|&#12356;"
&#12363;|&#12356; 
3

#&#27491;&#35215;&#34920;&#29694;&#12398;&#36969;&#24540;:%regex=%&#12467;&#12510;&#12531;&#12489;
#&#20195;&#20837;&#12373;&#12428;&#12427;&#12398;&#12391;&#12487;&#12540;&#12479;&#12364;&#22793;&#12431;&#12426;&#12414;&#12377;
print(JPNCharVec %regex=% c("\\&#12356;+", "i"))
[1] "&#12363;&#12425;&#12384;&#12395;i&#12418;&#12398;!!_"

#&#20363;_&#32068;&#12415;&#21512;&#12431;&#12379;
JPNCharVec <- c("&#12363;&#12425;&#12384;&#12395;&#12356;&#12356;&#12418;&#12398;!!_")
JPNCharVec %-% "&#12395;|!!|_" %s*% 2
&#12363;&#12425;&#12384;&#12356;&#12356;&#12418;&#12398; 
"&#12363;&#12425;&#12384;&#12356;&#12356;&#12418;&#12398;&#12363;&#12425;&#12384;&#12356;&#12356;&#12418;&#12398;" 
########

###&#20195;&#20837;&#28436;&#31639;&#23376;#####
###&#27880;&#24847;:&#20195;&#20837;&#12394;&#12398;&#12391;&#32080;&#26524;&#12364;&#20445;&#23384;&#12373;&#12428;&#12414;&#12377;#####

#&#21152;&#31639;:%+=%
NumVec <- 1:5
print(NumVec %+=% 1)
[1] 2 3 4 5 6

#&#28187;&#31639;:%-=%
NumVec <- 1:5
print(NumVec %-=% 1)
[1] 0 1 2 3 4

#&#20055;&#31639;:%*=%
NumVec <- 1:5
print(NumVec %*=% 2)
[1] 2 4 6 8 10

#&#38500;&#31639;:%/=%
NumVec <- 1:5
print(NumVec %/=% 2)
[1] 0.5 1.0 1.5 2.0 2.5

#&#12409;&#12365;&#20055;:%^=%
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

#&#12523;&#12540;&#12488;:%root=%
NumVec <- 1:5
print(NumVec %root=% 2)
[1] 1.000000 1.414214 1.732051 2.000000 2.236068

###&#12381;&#12398;&#20182;&#12398;&#28436;&#31639;&#23376;#####
#&#26368;&#23567;< X <&#26368;&#22823;&#12398;&#31684;&#22258;&#12395;&#21547;&#12414;&#12428;&#12427;&#12363;:%><%&#12467;&#12510;&#12531;&#12489;
#&#31684;&#22258;&#25351;&#23450;:c(&#26368;&#23567;, &#26368;&#22823;)
c(1, 2) %><% c(1, 3)
[1] FALSE  TRUE

#&#26368;&#23567;<= X <=&#26368;&#22823;&#12398;&#31684;&#22258;&#12395;&#21547;&#12414;&#12428;&#12427;&#12363;:%>=<%&#12467;&#12510;&#12531;&#12489;
1 %>=<% c(1, 3)
[1] TRUE

#if(a == b):%==%&#12467;&#12510;&#12531;&#12489;
#NA&#12418;&#35469;&#35672;
a <- c("&#12363;", NA, "&#12384;", "&#12356;")
b <- c("&#12363;", NA, "&#12425;", "&#12356;")
a %==% b
[1]  TRUE  TRUE FALSE  TRUE

#&#21547;&#12414;&#12428;&#12390;&#12356;&#12394;&#12356;&#12363;&#30906;&#35469;:%ni%&#12467;&#12510;&#12531;&#12489;
#&#21547;&#12414;&#12428;&#12390;&#12356;&#12427;&#12398;&#12391;FALSE
"K" %ni% c("K", "&#12425;", "&#12384;")
[1] FALSE

#XOR&#28436;&#31639;&#23376;:%xor%&#12467;&#12510;&#12531;&#12489;
#&#28436;&#31639;&#23376;&#25375;&#12435;&#12391;&#21516;&#12376;&#12414;&#12383;&#12399;&#36949;&#12358;&#12391;FALSE
c(1, 3) %xor% c(4, 5)
[1] FALSE FALSE

#&#20840;&#12390;&#21516;&#12376;&#12363;&#21028;&#23450;:%aon%&#12467;&#12510;&#12531;&#12489;
c(1, 1) %aon% c(1, 1)
[1] TRUE

#&#28014;&#21205;&#23567;&#25968;&#28857;&#12434;&#35469;&#35672;:%~=%&#12467;&#12510;&#12531;&#12489;
#&#12381;&#12398;&#20182;:%>~%&#12467;&#12510;&#12531;&#12489;, %<~%&#12467;&#12510;&#12531;&#12489;&#12364;&#12354;&#12426;&#12414;&#12377;
#(0.1 * 3) == 0.3
#[1] FALSE
(0.1 * 3) %~=% 0.3
[1] TRUE
#&#21442;&#32771;
#isTRUE(all.equal(0.1 * 3, 0.3))

#class&#12418;&#21547;&#12417;&#12390;&#21516;&#12376;&#12363;&#21028;&#23450;:%===%&#12467;&#12510;&#12531;&#12489;
num(1) %===% int(1)
[1] FALSE

少しでも、あなたの解析が楽になりますように!!

タイトルとURLをコピーしました