Rで解析:配列操作が簡単です「ramify」パッケージ

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

Rの代表的なクラスとして配列を示すmatrix classがあります。data.frame classと同様に多く使われているデータ形式です。ベクトルに比べ処理速度が劣る点もありますが、利用しやすい形式だと思います。そんな、配列操作のコマンドが収められたパッケージの紹介です。

パッケージのバージョンは0.3.3。windows11のR version 4.2.2で確認しています。

スポンサーリンク

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

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

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

実行コマンド

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

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

###データ例の作成#####
set.seed(1234)
TestData <- matrix(sample(1:300, 100), 10, 10)
########

#&#26368;&#22823;&#20516;,&#26368;&#23567;&#20516;&#12398;&#20301;&#32622;&#12434;&#34920;&#31034;:argmax,argmin&#12467;&#12510;&#12531;&#12489;
#rows&#12458;&#12503;&#12471;&#12519;&#12531;:TRUE;&#34892;&#12395;&#23550;&#12375;&#12390;&#21015;&#12391;&#20301;&#32622;&#12434;&#31034;&#12377;
#&#26368;&#22823;&#20516;&#12398;&#20301;&#32622;&#12434;&#34920;&#31034;
argmax(TestData, rows = TRUE)
[1] 4 5 6 9 6 7 3 4 3 1
#&#26368;&#23567;&#20516;&#12398;&#20301;&#32622;&#12434;&#34920;&#31034;
argmin(TestData, rows = TRUE)
[1] 10  2  2 10  2  8  6 10  7  4

#&#25991;&#23383;&#21015;&#12363;&#12425;&#37197;&#21015;&#12434;&#20316;&#25104;:mat&#12467;&#12510;&#12531;&#12489;
#&#34892;&#12398;&#21306;&#20999;&#12426;&#12399;;&#12391;&#25351;&#23450;&#12375;&#12414;&#12377;
#rows&#12458;&#12503;&#12471;&#12519;&#12531;:TRUE;&#21015;&#26041;&#21521;&#12395;&#25968;&#20516;&#12434;&#20837;&#12428;&#36796;&#12415;
mat("1, 1; 2, 1", rows = TRUE)
     [,1] [,2]
[1,]    1    1
[2,]    2    1

#&#37197;&#21015;&#12398;&#32080;&#21512;:bmat&#12467;&#12510;&#12531;&#12489;
#&#12487;&#12540;&#12479;&#20363;&#12398;&#20316;&#25104;
TestMat <- mat(paste0(rep("0", 5), ","))
CTestMat <- mat(paste0(rep("1", 5), ","))
RTestMat <- mat(paste0(rep("2", 2), collapse = ","))
#&#21015;&#20596;&#12395;&#32080;&#21512;&#12377;&#12427;&#26178;&#12399;&#12458;&#12502;&#12472;&#12455;&#12463;&#12488;&#21517;&#12398;&#24460;&#12429;&#12395;&#12300;;&#12301;&#12434;&#25351;&#23450;
bmat("TestMat, CTestMat; RTestMat")
     [,1] [,2]
[1,]    0    1
[2,]    0    1
[3,]    0    1
[4,]    0    1
[5,]    0    1
[6,]    2    2

#&#25991;&#23383;&#21015;&#12414;&#12383;&#12399;&#12522;&#12473;&#12488;&#12363;&#12425;&#12487;&#12540;&#12479;&#12501;&#12524;&#12540;&#12512;&#12434;&#20316;&#25104;:dmat&#12467;&#12510;&#12531;&#12489;
dmat(paste0(rep("0", 2), ","))
&#12288;V1
1  0
2  0

#&#23550;&#35282;&#34892;&#21015;&#12434;&#20316;&#25104;:eye&#12467;&#12510;&#12531;&#12489;
eye(nrow = 3, ncol = 4)
&#12288;&#12288;&#12288;[,1] [,2] [,3] [,4]
[1,]    1    0    0    0
[2,]    0    1    0    0
[3,]    0    0    1    0

#&#20840;&#25104;&#20998;&#12434;&#25351;&#23450;&#12375;&#12383;&#20869;&#23481;&#12398;&#37197;&#21015;&#12434;&#20316;&#25104;:fill&#12467;&#12510;&#12531;&#12489;
#&#20182;&#12395;falses,trues,ones,zeros&#12467;&#12510;&#12531;&#12489;&#12364;&#12354;&#12426;&#12414;&#12377;
fill("&#12354;", 3, 3)
&#12288;&#12288;[,1] [,2] [,3]
[1,] "&#12354;" "&#12354;" "&#12354;"
[2,] "&#12354;" "&#12354;" "&#12354;"
[3,] "&#12354;" "&#12354;" "&#12354;"

#&#20840;&#25104;&#20998;&#12434;TRUE&#12391;&#20316;&#25104;:trues&#12467;&#12510;&#12531;&#12489;
trues(3, 3)
&#12288;&#12288;[,1] [,2] [,3]
[1,] TRUE TRUE TRUE
[2,] TRUE TRUE TRUE
[3,] TRUE TRUE TRUE

#&#20840;&#25104;&#20998;&#12434;0&#12391;&#20316;&#25104;:zeros&#12467;&#12510;&#12531;&#12489;
zeros(3, 3)
&#12288;&#12288;[,1] [,2] [,3]
[1,]    0    0    0
[2,]    0    0    0
[3,]    0    0    0

#&#12521;&#12531;&#12480;&#12512;&#12394;&#25968;&#23383;&#12391;&#37197;&#21015;&#12434;&#20316;&#25104;:rand&#12467;&#12510;&#12531;&#12489;
#&#20182;&#12395;randi,randn&#12467;&#12510;&#12531;&#12489;&#12364;&#12354;&#12426;&#12414;&#12377;
rand(nrow = 3, ncol = 3, min = 10, max = 20)
&#12288;&#12288;&#12288;[,1]     [,2]     [,3]
[1,] 11.16685 12.31078 10.03573
[2,] 15.22607 10.08828 10.62518
[3,] 14.07603 11.81341 13.35422

#&#19979;&#19977;&#35282;&#34892;&#21015;&#12398;&#37197;&#21015;&#12434;&#20316;&#25104;:tril&#12467;&#12510;&#12531;&#12489;
#&#19978;&#19977;&#35282;&#34892;&#21015;&#12398;triu&#12467;&#12510;&#12531;&#12489;&#12418;&#12354;&#12426;&#12414;&#12377;
#diag&#12458;&#12503;&#12471;&#12519;&#12531;:TRUE;&#23550;&#35282;&#37096;&#20998;&#12434;1&#12395;&#12377;&#12427;
tril(fill("&#12354;", 3, 3), diag = FALSE)
&#12288;&#12288;[,1] [,2] [,3]
[1,] "0"  "0"  "0" 
[2,] "&#12354;" "0"  "0" 
[3,] "&#12354;" "&#12354;" "0"

#&#37197;&#21015;&#12398;&#20869;&#23481;&#12434;&#30465;&#30053;&#12375;&#12390;&#34920;&#31034;:pprint&#12467;&#12510;&#12531;&#12489;
pprint(fill("&#12354;", 10, 10))
10 x 10 matrix of characters: 
  &#12288;&#12288;[,1] [,2] [,3] ... [,10]
[1,]    &#12354;   &#12354;   &#12354; ...    &#12354;
[2,]    &#12354;   &#12354;   &#12354; ...    &#12354;
[3,]    &#12354;   &#12354;   &#12354; ...    &#12354;
...    ...  ...  ... ...   ...
[10,]   &#12354;   &#12354;   &#12354; ...    &#12354;

#&#37197;&#21015;&#12398;&#34892;&#21015;&#12469;&#12452;&#12474;&#12434;&#22793;&#26356;:resize&#12467;&#12510;&#12531;&#12489;
#&#12487;&#12540;&#12479;&#20363;&#12434;&#20316;&#25104;
TestMT <- fill("&#12354;", 4, 4)
TestMT
&#12288;&#12288;[,1] [,2] [,3] [,4]
[1,] "&#12354;" "&#12354;" "&#12354;" "&#12354;"
[2,] "&#12354;" "&#12354;" "&#12354;" "&#12354;"
[3,] "&#12354;" "&#12354;" "&#12354;" "&#12354;"
[4,] "&#12354;" "&#12354;" "&#12354;" "&#12354;"
#resize&#12467;&#12510;&#12531;&#12489;&#12391;&#12469;&#12452;&#12474;&#12398;&#22793;&#26356;
resize(TestMT, 2, 8)
&#12288;&#12288;[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
[1,] "&#12354;" "&#12354;" "&#12354;" "&#12354;" "&#12354;" "&#12354;" "&#12354;" "&#12354;"
[2,] "&#12354;" "&#12354;" "&#12354;" "&#12354;" "&#12354;" "&#12354;" "&#12354;" "&#12354;"

#&#25351;&#23450;&#12375;&#12383;&#31684;&#22258;&#12398;&#31561;&#24046;&#25968;&#21015;&#12434;&#20316;&#25104;:linspace&#12467;&#12510;&#12531;&#12489;
linspace(a = 1, b = 5, n = 6)
[1] 1.0 1.8 2.6 3.4 4.2 5.0
#&#21516;&#27096;&#12398;&#12467;&#12510;&#12531;&#12489;&#12395;logspace&#12364;&#12354;&#12426;&#12414;&#12377;
#log&#12398;&#24213;&#12434;&#25351;&#23450;:base&#12458;&#12503;&#12471;&#12519;&#12531;
logspace(a = 1, b = 5, n = 6, base = 10)
[1] 10.00000 63.09573 398.10717 2511.88643&#12288;15848.93192&#12288;100000.00000

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

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