データ操作に便利なコマンドが数多く収録されているパッケージの紹介です。データ抽出、データ結合、列名の変更、long型やwide型への変換、データの記述統計などのコマンドが収録されています。
パッケージバージョンは0.3.0。実行コマンドはwindows 11のR version 4.1.2で確認しています。
パッケージのインストール
下記、コマンドを実行してください。
#パッケージのインストール install.packages("datawizard")
実行コマンド
詳細はコメント、パッケージのヘルプを確認してください。
#パッケージの読み込み library("datawizard") ###データ例の作成##### #tidyverseパッケージがなければインストール if(!require("tidyverse", quietly = TRUE)){ install.packages("tidyverse");require("tidyverse") } set.seed(1234) n <- 100 TestData <- tibble(Group = sample(paste0("Group", 1:4), n, replace = TRUE), ID = sample(LETTERS[1:5], n, replace = TRUE), X_num_Data = sample(c(1:30), n, replace = TRUE), Y_num_Data = sample(c(51:100), n, replace = TRUE)) ######## #条件に合うデータ行番号を取得:data_matchコマンド #条件を指定:toオプション;datafreame/tibble形式で指定 GetRows <- data_match(x = TestData, to = tibble(ID = c("A", "C"), X_num_Data = 10)) #確認 GetRows [1] 4 38 66 #データ抽出 TestData[GetRows,] # A tibble: 3 x 4 # Group ID X_num_Data Y_num_Data # <chr> <chr> <int> <int> #1 Group2 C 10 87 #2 Group2 A 10 85 #3 Group1 C 10 58 #列名の先頭に文字を付与:data_addprefixコマンド head(data_addprefix(TestData, pattern = "KARADA_"), 3) # A tibble: 3 x 4 # KARADA_Group KARADA_ID KARADA_X_num_Data KARADA_Y_num_Data # <chr> <chr> <int> <int> #1 Group4 D 8 81 #2 Group4 A 8 89 #3 Group2 E 22 88 #列名の最後尾に文字を付与:data_addsuffixコマンド head(data_addsuffix(TestData, pattern = "_KARADA"), 3) # A tibble: 3 x 4 # Group_KARADA ID_KARADA X_num_Data_KARADA Y_num_Data_KARADA # <chr> <chr> <int> <int> #1 Group4 D 8 81 #2 Group4 A 8 89 #3 Group2 E 22 88 #パターン合う列名を取得:data_findcolsコマンド #pattern,starts_with,ends_withが使用可能 data_findcols(TestData, pattern = "\\_num") [1] "X_num_Data" "Y_num_Data" #列の削除:data_removeコマンド head(data_remove(TestData, pattern = "ID"), 3) # A tibble: 3 x 3 # Group X_num_Data Y_num_Data # <chr> <int> <int> #1 Group4 8 81 #2 Group4 8 89 #3 Group2 22 88 #列名の変更:data_renameコマンド head(data_rename(TestData, c("Group", "ID"), c("KARADA", "GOOD")), 3) # A tibble: 3 x 4 # KARADA GOOD X_num_Data Y_num_Data # <chr> <chr> <int> <int> #1 Group4 D 8 81 #2 Group4 A 8 89 #3 Group2 E 22 88 ###列名の一括消去##### head(data_rename(TestData, NULL), 3) # A tibble: 3 x 4 # `1` `2` `3` `4` # <chr> <chr> <int> <int> #1 Group4 D 8 81 #2 Group4 A 8 89 #3 Group2 E 22 88 #列の並び替え:data_reorderコマンド #列名を間違ってもエラーが出ない,無視される head(data_reorder(TestData, c("ID", "X_Num_Data")), 3) # A tibble: 3 x 4 # ID Group X_num_Data Y_num_Data # <chr> <chr> <int> <int> #1 D Group4 8 81 #2 A Group4 8 89 #3 E Group2 22 88 #データフレームの結合:data_mergeコマンド #結合方式:joinオプション;"full","left","right", #"inner","anti","semi","bind" TestData_2 <- data_rename(TestData, NULL) data_merge(x = TestData, y = TestData_2, join = "bind") ###途中を抜粋##### # Group ID X_num_Data Y_num_Data 1 2 3 4 #99 Group2 C 5 68 <NA> <NA> NA NA #100 Group4 A 19 72 <NA> <NA> NA NA #101 <NA> <NA> NA NA Group4 D 8 81 #102 <NA> <NA> NA NA Group4 A 8 89 ######## #データをlong型に変換:data_to_longコマンド #対象範囲:colsオプション #変換後の列名:colnames_toオプション #返還後の値列名:values_toオプション #返還前の行番号:rows_toオプション;NULLで非表示 head(data_to_long(TestData, cols = c(3, 4), colnames_to = "Names", values_to = "Values", rows_to = NULL), 3) # A tibble: 3 x 4 # Group ID Names Values # <chr> <chr> <chr> <int> #1 Group4 D X_num_Data 8 #2 Group4 D Y_num_Data 81 #3 Group4 A X_num_Data 8 #データをwide型に変換:data_to_wideコマンド LongData <- data_to_long(TestData, cols = c(3, 4), colnames_to = "Names", values_to = "Values", rows_to = NULL) head(data_to_wide(LongData, colnames_from = "Names", values_from = "Values", rows_from = NULL), 3) # A tibble: 3 x 4 # Group ID Values_X_num_Data Values_Y_num_Data # <chr> <chr> <int> <int> #1 Group4 D 8 81 #2 Group4 A 8 89 #3 Group2 E 22 88 #データの記述統計:describe_distributionコマンド describe_distribution(TestData) #Variable | Mean | SD | IQR | Min | Max | Skewness | Kurtosis | n | n_Missing #-------------------------------------------------------------------------------- #X_num_Data | 15 | 9 | 16 | 1 | 30 | 0.10 | -1.3 | 100 | 0 #Y_num_Data | 76 | 14 | 24 | 52 | 100 | 0.16 | -1.2 | 100 | 0
少しでも、あなたの解析が楽になりますように!!