解析の重要な作業としてデータのハンドリングがあります。本パッケージではデータの結合、文字列、因子、NA値の操作が手軽にできます。これらの操作はRの基本コマンドでも可能ですが、初心者には面倒なこともあります。まずは、本パッケージでデータのハンドリングをしつつ、基本コマンドを学習してみてはいかがでしょうか。
パッケージから日常的に使用頻度が高そうな19のコマンドを紹介します。
本パッケージの各コマンドhelpにはSee Alsoに基本コマンドが紹介されています。ぜひ、活用ください。
パッケージバージョンは2.18.0.1。windows11のR version 4.2.2で確認しています。
パッケージのインストール
下記コマンドを実行してください。
#パッケージのインストール install.packages("gdata")
実行コマンド
19のコマンドを紹介します。詳細はコメントまたはパッケージヘルプを確認してください。
#ライブラリの読み込み library("gdata") #####準備##################### #データ例の作成 set.seed(1234) i <- 10 TestData1 <- data.frame(Group = paste0("Test", 1:i), Data1 = I(sample(c(1:3, NA), i, replace = TRUE)), Text1 = I(sample(c(LETTERS[1:3], NA), i, replace = TRUE))) TestData2 <- data.frame(Group = paste0("Test", 11:(10 + i)), Data2 = I(sample(c(1:3, NA), i, replace = TRUE)), Text2 = I(sample(c(LETTERS[1:3], NA), i, replace = TRUE))) ############################## ##1 #Rで最後に実行した結果を表示:ansコマンド ans() ##2 #コマンドのデフォルト値を表示:Argコマンド Args("data.frame") ##3 #2つのdata.frameを基準行で結合:bindDataコマンド #commonオプションで指定した行以外の行を横に結合 bindData(TestData1, TestData2, common = c("Group")) Group Data1 Text1 Data2 Text2 1 Test1 NA <NA> NA <NA> 2 Test2 NA <NA> NA <NA> 3 Test3 2 B NA <NA> #####省略##### 17 Test17 NA <NA> 1 A 18 Test18 NA <NA> NA B 19 Test19 NA <NA> NA B 20 Test20 NA <NA> NA C ##4 #数列にラベルを付与して因子化:caseコマンド #指定した値以外はNAになります TestData1[, 2] [1] NA NA 2 2 1 NA 3 1 1 2 case(TestData1[, 2], "a" = 1, "b" = 2) [1] <NA> <NA> b b a <NA> <NA> a a b Levels: a b ##5 #data.frameやmatirixのデータ内容を維持して結合:cbindX #cbindXコマンド:データ内容が維持され結合できます cbindX(TestData1[1:5, 1:2], TestData2) Group Data1 Group Data2 Text2 1 Test1 NA Test11 2 C 2 Test2 NA Test12 2 <NA> #####省略##### 9 <NA> NA Test19 NA B 10 <NA> NA Test20 NA C ##6 #コンソールの中央にテキストを表示:centerTextコマンド centerText("からだにいいもの") ##7 #データの結合元名がわかるように結合:combineコマンド #nameオプション:source名を指定,初期値;NULL combine(TestData1[, 2], TestData2[, 2], names = c("TEST1", "TEST2")) data source 1 NA TEST1 2 NA TEST1 #####省略##### 19 NA TEST2 20 NA TEST2 ##8 #使用されていない因子levelを削除:drop.levelsコマンド #元のデータ factor(TestData1[3:6, 1], levels = c("Test3", "Test4", "Test5", "Test6", "Test8")) [1] Test3 Test4 Test5 Test6 Levels: Test3 Test4 Test5 Test6 Test8 #コマンドを適応 drop.levels(factor(TestData1[3:6, 1], levels = c("Test3", "Test4", "Test5", "Test6", "Test8"))) [1] Test3 Test4 Test5 Test6 Levels: Test3 Test4 Test5 Test6 ##9 #因子のラベルと順番を確認:mapLevelsコマンド mapLevels(TestData1[3:6, 1]) Test3 Test4 Test5 Test6 1 2 3 4 ##10 #重複データ位置の確認:duplicated2コマンド #元データ TestData1[, 3] [1] NA NA "B" "C" "B" "B" "B" "C" "B" NA #R付属(base)のduplicatedコマンド #2回目出現がTRUE duplicated(TestData1[, 3]) [1] FALSE TRUE FALSE TRUE TRUE FALSE FALSE TRUE TRUE TRUE #duplicated2コマンド #重複データは全てTRUE duplicated2(TestData1[, 3]) [1] TRUE TRUE TRUE TRUE TRUE TRUE FALSE TRUE TRUE TRUE ##11 #データの最初,最後を表示:first,lastコマンド #最初を表示:firstコマンド first(TestData1) Group Data1 Text1 #1 Test1 NA <NA> #最後を表示:lastコマンド last(TestData1) Group Data1 Text1 #10 Test10 2 <NA> ##12 #データフレームの行を指定して処理を実行:frameApplyコマンド #byオプション:対象行を指定 frameApply(TestData1, by = c("Group", "Data1")) Group Data1 Count 1 Test1 NA 1 10 Test10 2 1 #####省略##### 8 Test8 1 1 9 Test9 1 1 ##13 #データを1列ごとに結合:interleaveコマンド #interleaveコマンド interleave(matrix(TestData1[, 1], 2), matrix(TestData1[, 2], 2), matrix(TestData1[, 3], 2)) [,1] [,2] [,3] [,4] [,5] [1,] "Test1" "Test3" "Test5" "Test7" "Test9" [2,] NA "2" "1" "3" "1" [3,] NA "B" "B" "B" "B" [4,] "Test2" "Test4" "Test6" "Test8" "Test10" [5,] NA "2" NA "1" "2" [6,] NA "C" "B" "C" NA ##14 #マトリックス,データフレームの表示行を指定:left(左側),right(右側)コマンド #共通nオプション:左または右端から表示する行数を指定 #左から指定:leftコマンド left(cbind(TestData1, TestData1), n = 4) Group Data1 Text1 Group.1 1 Test1 NA <NA> Test1 2 Test2 NA <NA> Test2 #####省略##### 9 Test9 1 B Test9 10 Test10 2 <NA> Test10 ##15 #NAを除いたベクトルの長さを表示:nodsコマンド #元データ Tnode <- c(NA, 2, 2, 1, NA) #R付属(base)のlengthコマンド length(Tnode) [1] 5 #nodeコマンド nobs(Tnode) [1] 3 ##16 #指定した内容の位置を取得:isUnknownコマンド #位置はTRUEで返されます #元データ TestData1[, 2] [1] NA NA 2 2 1 NA 3 1 1 2 #NAの位置を確認 isUnknown(TestData1[, 2], unknown = NA) [1] TRUE TRUE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE ##17 #指定した内容をNAに置換:unknownToNAコマンド #元データ TestData1[, 2] [1] NA NA 2 2 1 NA 3 1 1 2 #1をNAに置換,unknownオプションで値を指定 unknownToNA(TestData1[, 2], unknown = 1) [1] NA NA 2 2 NA NA 3 NA NA 2 ##18 #NAを除いた組み合わせ数を表示:nPairsコマンド #元データ Group Data1 Text1 1 Test1 NA <NA> 2 Test2 NA <NA> 3 Test3 2 B 4 Test4 2 C 5 Test5 1 B 6 Test6 NA B 7 Test7 3 B 8 Test8 1 C 9 Test9 1 B 10 Test10 2 <NA> #nPairsコマンドを実行 #allは行毎のNAを除いたデータ数 nPairs(x = TestData1, margin = TRUE) Grop Dat1 Txt1 all Grop 10 7 7 10 Dat1 7 7 6 7 Txt1 7 6 7 6 attr(,"class") [1] "nPairs" "matrix" "array" ##19 #三角行列上部または下部データ操作:upperTriangle,lowerTriangleコマンド #nPairsコマンドとの組み合わせ #上部データを取得 upperTriangle(nPairs(x = TestData1)) [1] 7 7 6 #上部データを変更,"<-"で値を変更 x <- nPairs(x = TestData1) upperTriangle(x) <- c(9, 10, 11) #表示 x Grop Dat1 Txt1 Grop 10 9 10 Dat1 7 7 11 Txt1 7 6 7 attr(,"class") [1] "nPairs" "matrix" "array" #下部データを取得 #lowerTriangle(nPairs(x = TestData1))
少しでも、あなたの解析が楽になりますように!!