Rで解析:dplyr::mutateをちょっと便利に「tidier」パッケージ

「dplyr::mutate」コマンドに「dplyr::group_by」、「dplyr::order_by」、対象データ行から処理するデータ範囲(対象データから前後のデータ数)を指定などの機能を付与した「tidier::mutate」コマンドが収録されたパッケージの紹介です。

パッケージのバージョンは0.2.0。windows 11のR version 4.4.1で確認しています。

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

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

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

実行コマンド

詳細はコメントやコマンドヘルプを確認してください。

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

###データ例の作成#####
# tidyverseパッケージがなければインストール
if(!require("tidyverse", quietly = TRUE)){
  install.packages("tidyverse");require("tidyverse")
}
set.seed(1234)
n <- 10
TestData <- tibble(Group = sample(paste0("Group", 1:2), 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))

# 確認
TestData

# A tibble: 100 × 4
#    Group  ID    X_num_Data Y_num_Data
#    <chr>  <chr>      <int>      <int>
#  1 Group2 D             29         94
#  2 Group2 B             26         53
#  3 Group2 B              5         73
#  4 Group2 D              2         91
#  5 Group1 D             30         86
#  6 Group2 D             15         58
#  7 Group1 E              8         82
#  8 Group1 D             27         92
#  9 Group1 C             20         93
# 10 Group2 D             16         52
########

# dplyr::mutate()が便利になるコマンド:tidier::mutateコマンド
# dplyr::group_byを利用:.order_byオプション,
# dplyr::order_byを利用:.byオプション
# 対象データ行から処理する行範囲(対象データから前後のデータ数)を指定:.frameオプション:(前,後)
# 日付けデータを行範囲データにする場合に列を指定する:.indexオプション
TestData %>%
  tidier::mutate(X_Mean = mean(X_num_Data),
                 .order_by = c(Group, ID),
                 .by = c(Group, ID),
                 .frame = c(1, 3))

# 結果
# A tibble: 10 × 5
#    Group  ID    X_num_Data Y_num_Data X_Mean
#    <chr>  <chr>      <int>      <int>  <dbl>
#  1 Group1 C             20         93   20   :20の平均
#  2 Group1 D             30         86   28.5 :30,27の平均
#  3 Group1 D             27         92   28.5
#  4 Group1 E              8         82    8   :30,27の平均
#  5 Group2 B             26         53   15.5 :26,5の平均
#  6 Group2 B              5         73   15.5 :26,5の平均
#  7 Group2 D             29         94   15.5 :29,2,15,16の平均
#  8 Group2 D              2         91   15.5 :29,2,15,16の平均
#  9 Group2 D             15         58   11   :2,15,16の平均
# 10 Group2 D             16         52   15.5 :15,16の平均

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

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.
タイトルとURLをコピーしました