本文へスキップ
からだにいいもの

Rのトピックスを中心に『まだ、まだ、知らない、役に立つ情報?』を発信します。

Rで解析:データ操作に便利なコマンド「datawizard」パッケージ

データ操作に便利なコマンドが数多く収録されているパッケージの紹介です。データ抽出、データ結合、列名の変更、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

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

このコードの続きをAIに聞く

スポンサーリンク
Prices and shipping availability may change. Please refer to the product page at time of purchase.
Content displayed on this site is provided by Amazon and may be updated or removed.
Amazon Associate, karada-good earns income through qualifying sales.