データ操作に便利なコマンドが数多く収録されているパッケージの紹介です。データ抽出、データ結合、列名の変更、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
少しでも、あなたの解析が楽になりますように!!