「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の平均
少しでも、あなたの 解析が楽になりますように!!