解析の重要な作業としてデータのハンドリングがあります。本パッケージではデータの結合、文字列、因子、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))
少しでも、あなたの解析が楽になりますように!!