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