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

Rの解析に役に立つ記事
スポンサーリンク

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

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

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

スポンサーリンク

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

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

#パッケージのインストール
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))
########

#&#12487;&#12540;&#12479;&#12395;&#22793;&#25968;&#12521;&#12505;&#12523;&#20184;&#19982;:variable_label&#12467;&#12510;&#12531;&#12489;
#&#21336;&#25968;
variable_label(TestData$Group) <- "&#12486;&#12473;&#12488;"

#&#21442;&#32771;:&#35079;&#25968;&#12521;&#12505;&#12523;&#20184;&#19982;
#variable_label(TestData$Group) <- c("&#12486;&#12473;&#12488;", "&#12487;&#12540;&#12479;")

#&#12487;&#12540;&#12479;&#12398;&#12521;&#12505;&#12523;&#12434;&#30906;&#35469;:variable_label&#12467;&#12510;&#12531;&#12489;
variable_label(TestData)
$Group
[1] "&#12486;&#12473;&#12488;"

$Data
NULL

#&#22793;&#25968;&#12521;&#12505;&#12523;&#12434;&#38500;&#21435;&#12375;&#12390;&#30906;&#35469;:unlabel&#12467;&#12510;&#12531;&#12489;
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::%>%(&#12497;&#12452;&#12503;)&#20869;&#12391;&#12487;&#12540;&#12479;&#12395;&#22793;&#25968;&#12521;&#12505;&#12523;&#20184;&#19982;:label_variables&#12467;&#12510;&#12531;&#12489;
TestData %>%
  mutate(Data2 = Data / 10) %>%
  label_variables(Group = "&#12464;&#12523;&#12540;&#12503;",
                  Data2 = "Data / 10") -> TestData2
#&#30906;&#35469;
#Data&#20197;&#22806;&#12364;tny_lbll_class&#12395;&#12394;&#12387;&#12390;&#12356;&#12427;
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

#&#22793;&#25968;&#12521;&#12505;&#12523;&#12434;&#30906;&#35469;
variable_label(TestData2)
$Group
[1] "&#12464;&#12523;&#12540;&#12503;"

$Data
NULL

$Data2
[1] "Data / 10"

#&#20363;&#12360;&#12400;
#expss&#12497;&#12483;&#12465;&#12540;&#12472;&#12364;&#12394;&#12369;&#12428;&#12400;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;
if(!require("expss", quietly = TRUE)){
  install.packages("expss");require("expss")
}
expss::use_labels(TestData2, table(Group, Data2))

       Data / 10
&#12464;&#12523;&#12540;&#12503; 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
&#12464;&#12523;&#12540;&#12503; 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

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

タイトルとURLをコピーしました