Rで解析:データに変数ラベルを付与「tinylabels」パッケージ


データに変数ラベルを簡単に付与できるパッケージの紹介です。特徴はベクトルへの単純な付与だけでなく、%>%(パイプ)内でデータに変数ラベルを付与できることでしょうか。地味ですが便利です。

「expss」パッケージと組み合わせることで変数ラベル付きのテーブルが作成できます。

パッケージのバージョンは0.2.3。実行コマンドはwindows 11のR version 4.1.2で確認しています。

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

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

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

実行コマンド

詳細はコメント、パッケージヘルプを確認してください。

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

###データ例の作成#####
#tidyverseパッケージがなければインストール
if(!require("tidyverse", quietly = TRUE)){
  install.packages("tidyverse");require("tidyverse")
}
set.seed(1234)
n <- 30
TestData <- tibble(Group = sample(paste0("Group", 1:4), n,
                                  replace = TRUE),
                   Data = sample(c(1:50), n, replace = TRUE))
########

#データに変数ラベル付与:variable_labelコマンド
#単数
variable_label(TestData$Group) <- "テスト"

#参考:複数ラベル付与
#variable_label(TestData$Group) <- c("テスト", "データ")

#データのラベルを確認:variable_labelコマンド
variable_label(TestData)
$Group
[1] "テスト"

$Data
NULL

#変数ラベルを除去して確認:unlabelコマンド
unlabel(TestData)
# A tibble: 30 x 2
   Group   Data
   <chr>  <int>
1 Group4     3
2 Group4    36
3 Group2    31
4 Group2    29
5 Group1     5
6 Group4     2
7 Group3    47
8 Group1    40
9 Group1    20
10 Group2    48
# ... with 20 more rows

#magrittr::%>%(パイプ)内でデータに変数ラベル付与:label_variablesコマンド
TestData %>%
  mutate(Data2 = Data / 10) %>%
  label_variables(Group = "グループ",
                  Data2 = "Data / 10") -> TestData2
#確認
#Data以外がtny_lbll_classになっている
TestData2
# A tibble: 30 x 3
Group      Data       Data2     
 <tny_lbll> <int> <tny_lbll>
1 Group4      3         0.3       
2 Group4     36         3.6       
3 Group2     31         3.1       
4 Group2     29         2.9       
5 Group1      5         0.5       
6 Group4      2         0.2       
7 Group3     47         4.7       
8 Group1     40         4.0       
9 Group1     20         2.0       
10 Group2     48         4.8       
# ... with 20 more rows

#変数ラベルを確認
variable_label(TestData2)
$Group
[1] "グループ"

$Data
NULL

$Data2
[1] "Data / 10"

#例えば
#expssパッケージがなければインストール
if(!require("expss", quietly = TRUE)){
  install.packages("expss");require("expss")
}
expss::use_labels(TestData2, table(Group, Data2))

       Data / 10
グループ 0.2 0.3 0.5 0.6 0.8 1.5 2 2.3 2.6 2.9 3.1 3.2 3.6 3.8 4 4.1 4.2 4.3
Group1   0   0   1   0   0   0 1   0   0   0   0   1   0   0 1   0   0   0
Group2   0   0   0   1   1   1 0   1   0   1   1   1   1   0 0   0   0   1
Group3   0   0   0   0   0   0 0   0   0   0   0   0   0   0 0   1   1   0
Group4   2   2   0   0   1   0 0   0   1   1   0   0   1   1 0   0   0   0
       Data / 10
グループ 4.4 4.7 4.8 4.9
Group1   0   0   0   0
Group2   0   0   1   1
Group3   0   1   0   0
Group4   1   0   0   2

あなたの解析が楽になりますように!!

スポンサードリンク

スポンサードリンク