Rで解析:便利なコマンドが収録されています「useful」パッケージ

Rの解析に役に立つ記事
スポンサーリンク

data frameの内容やclassの表示だけでなく、ベクトルの比較などに便利なパッケージの紹介です。R初心者にオススメです。

パッケージバージョンは1.2.6。実行コマンドはR version 4.2.2で確認しています。

スポンサーリンク

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

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

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

実行コマンド

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

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

###データ例の作成#####
n <- 3000
TestData <- data.frame(Group = sample(paste0("Group", 1:5), n, replace = TRUE),
                       Data1 = rnorm(n),
                       Data2 = rnorm(n) + rnorm(n) + rnorm(n),
                       Data3 = sample(0:1, n, replace = TRUE),
                       Data4 = sample(LETTERS[1:26], n, replace = TRUE))
#######

#&#29702;&#35542;&#20516;&#12434;&#21453;&#36578;:binary.flip&#12467;&#12510;&#12531;&#12489;
#&#25968;&#20516;&#12398;&#27491;&#36000;&#12434;&#21453;&#36578;&#12375;&#12390;1&#22679;&#21152;&#12414;&#12383;&#12399;&#28187;&#23569;
binary.flip(c(1, 0, 1, 0, -100, 100))
[1]   0   1   0   1 101 -99

#&#12487;&#12540;&#12479;&#12475;&#12483;&#12488;&#12398;&#26411;&#23614;&#12434;&#24038;&#20596;&#12363;&#12425;&#34920;&#31034;:bottomleft&#12467;&#12510;&#12531;&#12489;
#&#34920;&#31034;&#12377;&#12427;&#34892;,&#21015;&#12434;&#25351;&#23450;:r,c&#12458;&#12503;&#12471;&#12519;&#12531;
bottomleft(TestData, r = 5L, c = 3L)
Group      Data1      Data2
2996 Group4 -0.5369601  0.3034859
2997 Group5  0.4338841 -0.5025751
2998 Group4  0.1440775 -0.7030302
2999 Group1 -1.1486917 -2.6184024
3000 Group3  0.7510146 -0.5538217

#&#12487;&#12540;&#12479;&#12475;&#12483;&#12488;&#12398;&#26411;&#23614;&#12434;&#21491;&#20596;&#12363;&#12425;&#34920;&#31034;:bottomright&#12467;&#12510;&#12531;&#12489;
#&#34920;&#31034;&#12377;&#12427;&#34892;,&#21015;&#12434;&#25351;&#23450;:r,c&#12458;&#12503;&#12471;&#12519;&#12531;
bottomright(TestData, r = 5L, c = 3L)
Data2 Data3 Data4
2996  0.3034859     1     F
2997 -0.5025751     0     H
2998 -0.7030302     0     J
2999 -2.6184024     0     P
3000 -0.5538217     1     E

#&#12514;&#12487;&#12523;&#24335;&#12434;&#20316;&#25104;:build.formula&#12467;&#12510;&#12531;&#12489;
build.formula(lhs = "Group", rhs = c("Data1", "Data2"))
Group ~ Data1 + Data2
<environment: 0x000002139502af40>

#&#26997;&#24231;&#27161;&#12434;&#12487;&#12459;&#12523;&#12488;&#24231;&#27161;&#12395;&#22793;&#25563;:cart2pol&#12467;&#12510;&#12531;&#12489;
cart2pol(TestData[, 2], TestData[, 3], degrees=TRUE)

# A tibble: 3,000 x 4
r theta      x      y
<dbl> <dbl>  <dbl>  <dbl>
  1 0.575 251.  -0.191 -0.542
2 0.613  15.2  0.591  0.161
3 2.06   94.0 -0.145  2.06 
4 0.864 131.  -0.563  0.656
5 2.16  194.  -2.10  -0.505
6 0.318 220.  -0.244 -0.204
7 1.17  102.  -0.250  1.14 
8 1.95   93.5 -0.118  1.94 
9 2.51  236.  -1.42  -2.08 
10 0.654 304.   0.368 -0.540
# ... with 2,990 more rows
# i Use `print(n = ...)` to see more rows

#&#12487;&#12540;&#12479;&#12398;Class&#12434;&#34920;&#31034;:classdf&#12467;&#12510;&#12531;&#12489;
classdf(TestData)
Group       Data1       Data2       Data3       Data4 
"character"   "numeric"   "numeric"   "integer" "character"

#&#25351;&#23450;&#12375;&#12383;&#21015;&#21517;&#12434;&#20808;&#38957;&#12414;&#12383;&#12399;&#26368;&#24460;&#23614;&#12395;&#31227;&#21205;:colsToFront&#12467;&#12510;&#12531;&#12489;
colsToFront(TestData, cols = "Data2")
[1] "Data2" "Group" "Data1" "Data3" "Data4"
colsToBack(TestData, cols = "Data2")
[1] "Group" "Data1" "Data3" "Data4" "Data2"

#2&#12388;&#12398;&#12505;&#12463;&#12488;&#12523;&#12398;&#27604;&#36611;:compare.list&#12467;&#12510;&#12531;&#12489;
compare.list(c(mean, mode, mean), c(mean, max, mode))
[1]  TRUE FALSE FALSE

#&#12505;&#12463;&#12488;&#12523;&#12398;&#24418;&#24335;&#12434;&#21028;&#26029;:find.case&#12467;&#12510;&#12531;&#12489;
#&#21028;&#26029;&#24418;&#24335;&#12434;&#25351;&#23450;:case&#12458;&#12503;&#12471;&#12519;&#12531;;upper;&#25968;&#23383;&#22823;&#25991;&#23383;,lower;&#25968;&#23383;&#23567;&#25991;&#23383;,mixed;&#28151;&#21512;,numeric;&#25968;&#23383;
TestCheck <- c("A", "a", "Aa", 1)
find.case(TestCheck,  case = "numeric")
[1] FALSE FALSE FALSE  TRUE

少しでも、あなたの解析が楽になりますように!!

タイトルとURLをコピーしました