トップ 一覧 検索 ヘルプ RSS ログイン 印刷

var_label()の変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
! 変数にラベルをつける

データフレームの変数名は、一応、日本語(漢字など)でも支障ないようだが、パッケージで日本語に対応していないものがあるため、結局はアスキー文字にせざるを得ない。

そういうときに、漢字の情報量にまさる変数名をアスキー文字でつけるのはなかなか厳しいものがあるので、変数名に対応する情報をラベルづけしておきたい。

! labelledパッケージの、var_label()を使う。

 > install.packages("labelled")
 > library(labelled)
 > labelled::var_label(iris) <- list(
 +     Species = "学名",
 +     Sepal.Length = "萼長",
 +     Sepal.Width = "萼幅",
 +     Petal.Length = "花弁長",
 +     Petal.Width = "花弁幅"
 + )

とすれば、下記のように、attrでlabel属性がつく。これは、attr()でもできる。

 > str(iris)
 'data.frame':	150 obs. of  5 variables:
 $ Sepal.Length: num  5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
  ..- attr(*, "label")= chr "萼長"
 $ Sepal.Width : num  3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
  ..- attr(*, "label")= chr "萼幅"
 $ Petal.Length: num  1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
  ..- attr(*, "label")= chr "花弁長"
 $ Petal.Width : num  0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
  ..- attr(*, "label")= chr "花弁幅"
 $ Species     : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...
  ..- attr(*, "label")= chr "学名"


! 表示

expss::use_labels(df, var)が使える。

> use_labels(
  iris,
  ..data %>% ggplot(aes(x = Sepal.Length, y = Sepal.Width, color = Species)) + geom_point()
 > use_labels( iris, ..data %>% 
 ggplot(aes(x = Sepal.Length, y = Sepal.Width, color = Species)) + geom_point()
  )


:参考:

このやり方は、r-wakalangのill_identifiedさんに教わった。感謝!

* http://ill-identified.hatenablog.com/entry/2020/03/30/013939