matrixを簡単に操作できる「matrixStats」パッケージの中から使用頻度が高そうなコマンドを紹介します。matrixの操作は基本コマンドで十分できますが、慣れるまでは本パッケージを利用しながら使い方を学ぶのもありかと思います。
また、「matrixStats」パッケージは多くのコマンドが収録されていますので、気になる方はヘルプを参照ください。
パッケージバージョンは0.14.1です。
コマンドはR version 3.2.0で確認しています。
パッケージのインストール
下記コマンドを実行してください。
#パッケージのインストール install.packages("matrixStats", type = "source")
データ例の作成
下記コマンドを実行してください。
#100*100のデータを作成 set.seed(1234) TMatrix <- matrix(sample(1:300, 100, replace = TRUE), nrow = 10, ncol = 10) #2の倍数をNAで置換 TMatrix[which(TMatrix %% 7 == 0)] <- NA #行名と列名を付与 colnames(TEST) <- c(LETTERS, c(t(outer(LETTERS, LETTERS, paste0, sep = ""))))[1:10] rownames(TEST) <- paste0("DATA", 1:10) [/code] <hr /> <h2>実行コマンドの紹介</h2> 詳細はコメントを確認してください。 #パッケージの読み込み library("matrixStats") ###データに欠損値があるか確認:anyMissing, colAnyMissings, rowAnyMissingsコマンド### #データ全体を確認 anyMissing(TMatrix) [1] TRUE #行を確認 colAnyMissings(TMatrix) [1] TRUE TRUE TRUE FALSE FALSE FALSE FALSE FALSE TRUE TRUE #FALSE:4行目を確認 TMatrix[, 4] [1] 137 80 92 153 55 228 61 78 298 243 #TRUE:1行目を確認 TMatrix[, 1] [1] NA 187 183 188 NA 193 3 NA 200 155 #列を確認 rowAnyMissings(TMatrix) [1] TRUE TRUE FALSE FALSE TRUE TRUE TRUE TRUE TRUE TRUE #FALSE:3列目を確認 TMatrix[3,] [1] 183 85 48 92 94 216 96 5 43 41 #TRUE:1列目を確認 TMatrix[1,] [1] NA 209 95 137 167 23 260 37 278 50 ###### ###配列から斜めにデータを取得:rowCollapse, colCollapseコマンド #行方向に斜め rowCollapse(TMatrix, 2:4) [1] 209 NA 92 278 66 228 86 275 298 NA TMatrix[, 2:4] [,1] [,2] [,3] [1,] 209 95 137 [2,] 164 NA 80 [3,] 85 48 92 [4,] 278 12 153 [5,] 88 66 55 [6,] NA 244 228 [7,] 86 158 61 [8,] 81 275 78 [9,] 57 250 298 [10,] NA NA 243 #列方向に斜め colCollapse(TMatrix, 2:4) [1] 187 85 12 80 94 152 13 5 164 271 TMatrix[2:4,] [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [1,] 187 164 NA 80 194 93 13 268 142 271 [2,] 183 85 48 92 94 216 96 5 43 41 [3,] 188 278 12 153 187 152 5 235 164 40 ###### ###指定した値の個数を検出:colCounts, rowCountsコマンド #共通のオプション:value = 指定した値, na.rm = TRUE #各行を確認 colCounts(TMatrix, value = NA, na.rm = TRUE) [1] 3 2 2 0 0 0 0 0 1 2 #各行を確認 rowCounts(TMatrix, value = NA, na.rm = TRUE) [1] 1 1 0 0 1 2 1 1 1 2 ###### ###各行,列の総和,減算,最大値を計算 #総和,NA値の場所で計算が止まります #列方向に積算 colCumsums(TMatrix) [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [1,] NA 209 95 137 167 23 260 37 278 50 [2,] NA 373 NA 217 361 116 273 305 420 321 省略 [9,] NA NA NA 1182 1316 1110 920 963 NA NA [10,] NA NA NA 1425 1546 1365 1090 1164 NA NA #行方向に積算 rowCumsums(TMatrix) [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [1,] NA NA NA NA NA NA NA NA NA NA [2,] 187 351 NA NA NA NA NA NA NA NA 省略 [9,] 200 257 507 805 879 932 948 1045 NA NA [10,] 155 NA NA NA NA NA NA NA NA NA #減算,NA値の場所で計算が止まります #列方向に減算 colCummins(TMatrix) [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [1,] NA 209 95 137 167 23 260 37 278 50 [2,] NA 164 NA 80 167 23 13 37 142 50 省略 [9,] NA NA NA 55 74 23 5 5 NA NA [10,] NA NA NA 55 74 23 5 5 NA NA #行方向に減算 rowCummins(TMatrix) [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [1,] NA NA NA NA NA NA NA NA NA NA [2,] 187 164 NA NA NA NA NA NA NA NA 省略 [9,] 200 57 57 57 57 53 16 16 NA NA [10,] 155 NA NA NA NA NA NA NA NA NA #最大値,NA値の場所で計算が止まります #列方向に最大値 colCummaxs(TMatrix) [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [1,] NA 209 95 137 167 23 260 37 278 50 [2,] NA 209 NA 137 194 93 260 268 278 271 省略 [9,] NA NA NA 298 204 226 260 268 NA NA [10,] NA NA NA 298 230 255 260 268 NA NA #行方向に最大値 rowCummaxs(TMatrix) [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [1,] NA NA NA NA NA NA NA NA NA NA [2,] 187 187 NA NA NA NA NA NA NA NA 省略 [9,] 200 200 250 298 298 298 298 298 NA NA [10,] 155 NA NA NA NA NA NA NA NA NA ###### ###差分を計算:Diffsコマンド #最大値,NA値の場所で計算が止まります #列方向に差分 colDiffs(TMatrix, lag = 1L, differences = 1L) #行方向に差分 rowDiffs(TMatrix, lag = 1L, differences = 1L) ###### ###中央値を検出:Mediansコマンド #各行 colMedians(TMatrix, na.rm = TRUE) [1] 187.0 87.0 126.5 114.5 159.0 150.5 94.5 106.5 142.0 45.5 #各列 rowMedians(TMatrix, na.rm = TRUE) [1] 137.0 164.0 88.5 158.5 59.0 202.5 116.0 94.0 93.0 226.5
少しでも、あなたのウェブや実験の解析が楽になりますように!!