Rで解析:配列操作。matrixクラスの理解が進むかも?「ramify」パッケージ


投稿日: Rの解析に役に立つ記事

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

紹介する「ramify」パッケージはmatrixに関するコマンドを熟知していれば、「ふーん」で終わってしまいます。でも、解析を進めてから、コマンドを熟知するのもRを使いこなすのに必要だと思います。Rの敷居が下がることに期待して本パッケージを紹介します。

パッケージのバージョンは0.3.1。R version 3.2.1でコマンドを確認しています。


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

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

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

実行コマンドの紹介

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

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

###データ例の作成#####
TestData <- matrix(sample(1:300, 100), 10, 10) ######## #最大値,最小値の位置を表示:argmax,argminコマンド #rowsオプション:TRUE;行に対して列で位置を示す #最大値の位置を表示 argmax(TestData, rows = TRUE) [1] 5 10 3 7 5 8 5 8 4 9 #最小値の位置を表示 argmin(TestData, rows = TRUE) [1] 1 8 2 6 2 3 10 5 2 6 #文字列からマトリックスを作成:matコマンド #行の区切りは;で指定します #rowsオプション:TRUE;列方向に数値を入れ込み mat("1, 1; 2, 1", rows = TRUE) [,1] [,2] [1,] 1 1 [2,] 2 1 #マトリックスの結合:bmatコマンド #行側に結合は;で指定します TestMat <- mat(paste0(rep("0", 5), ",")) CTestMat <- mat(paste0(rep("1", 5), ",")) RTestMat <- mat(paste0(rep("2", 2), collapse = ",")) bmat("TestMat, CTestMat; RTestMat") [,1] [,2] [1,] 0 1 [2,] 0 1 [3,] 0 1 [4,] 0 1 [5,] 0 1 [6,] 2 2 #文字列またはリストからデータフレームを作成:dmatコマンド class(dmat(paste0(rep("0", 2), ","))) [1] "data.frame" V1 1 0 2 0 #対角行列を作成:eyeコマンド eye(nrow = 3, ncol = 4) [,1] [,2] [,3] [,4] [1,] 1 0 0 0 [2,] 0 1 0 0 [3,] 0 0 1 0 #全成分を指定した内容のマトリックスを作成:fillコマンド #他にfalses,trues,ones,zerosコマンドがあります fill("あ", 3, 3) [,1] [,2] [,3] [1,] "あ" "あ" "あ" [2,] "あ" "あ" "あ" [3,] "あ" "あ" "あ" trues(3, 3) [,1] [,2] [,3] [1,] TRUE TRUE TRUE [2,] TRUE TRUE TRUE [3,] TRUE TRUE TRUE zeros(3, 3) [,1] [,2] [,3] [1,] 0 0 0 [2,] 0 0 0 [3,] 0 0 0 #ランダムな数字でマトリックスを作成:randコマンド #他にrandi,randnコマンドがあります rand(nrow = 3, ncol = 3, min = 10, max = 20) [,1] [,2] [,3] [1,] 11.16685 12.31078 10.03573 [2,] 15.22607 10.08828 10.62518 [3,] 14.07603 11.81341 13.35422 #下三角行列のマトリックスを作成:trilコマンド #上三角行列のtriuコマンドもあります #diagオプション:TRUE;対角部分を1にする tril(fill("あ", 3, 3), diag = FALSE) [,1] [,2] [,3] [1,] "0" "0" "0" [2,] "あ" "0" "0" [3,] "あ" "あ" "0" #マトリックスの内容を省略してコンソールに表示:pprintコマンド pprint(fill("あ", 10, 10)) 10 x 10 matrix of characters: [,1] [,2] [,3] ... [,10] [1,] あ あ あ ... あ [2,] あ あ あ ... あ [3,] あ あ あ ... あ ... ... ... ... ... ... [10,] あ あ あ ... あ #マトリックスの行列サイズを変更:resizeコマンド TestMT <- fill("あ", 4, 4) TestMT [,1] [,2] [,3] [,4] [1,] "あ" "あ" "あ" "あ" [2,] "あ" "あ" "あ" "あ" [3,] "あ" "あ" "あ" "あ" [4,] "あ" "あ" "あ" "あ" #サイズの変更 resize(TestMT, 2, 8) [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [1,] "あ" "あ" "あ" "あ" "あ" "あ" "あ" "あ" [2,] "あ" "あ" "あ" "あ" "あ" "あ" "あ" "あ" #指定した範囲の等差数列を作成:linspaceコマンド linspace(a = 1, b = 5, n = 6) [1] 1.0 1.8 2.6 3.4 4.2 5.0 #同様のコマンドにlogspaceがあります logspace(a = 1, b = 5, n = 6, base = 10) [1] 10.00000 63.09573 398.10717 2511.88643 15848.93192 100000.00000 [/code]


少しでも、あなたのウェブや実験の解析が楽になりますように!!

スポンサードリンク

関連コンテンツ


スポンサードリンク