「.Rprofile」の設定

[ R ] [ PC ] 2017/09/14

新しいPCにRをインストールした場合、「.Rprofile」も編集しておかないと、日本語を含む作図でこけるのをすっかり失念していたので、さっそくVAIO Zからコピペした。10月のセミナーに向けて資料づくりをやっていて気付いたのだが、早く気付いて良かった。

具体的には、ドキュメント(正しくは、自分のホームディレクトリ)に「.Rprofile」というファイルを作り、下記のコードを記述しておいた。

setHook(packageEvent("grDevices", "onLoad"),
        function(...){
          if(.Platform$OS.type == "windows")
            grDevices::windowsFonts(sans = "MS Gothic",
                                    serif = "MS Mincho",
                                    mono = "FixedFont")
          if(capabilities("aqua"))
            grDevices::quartzFonts(
              sans = grDevices::quartzFont(
                c("Hiragino Kaku Gothic Pro W3",
                  "Hiragino Kaku Gothic Pro W6",
                  "Hiragino Kaku Gothic Pro W3",
                  "Hiragino Kaku Gothic Pro W6")),
              serif = grDevices::quartzFont(
                c("Hiragino Mincho Pro W3",
                  "Hiragino Mincho Pro W6",
                  "Hiragino Mincho Pro W3",
                  "Hiragino Mincho Pro W6")))
          grDevices::pdf.options(family = "Japan1GothicBBB")
          grDevices::ps.options(family = "Japan1GothicBBB")
          }
        )

attach(NULL, name = "JapanEnv")

assign("familyset_hook",
       function() {
         winfontdevs = c("windows","win.metafile",
                         "png","bmp","jpeg","tiff","RStudioGD")
         macfontdevs = c("quartz","quartz_off_screen","RStudioGD")
         devname = strsplit(names(dev.cur()), ":")[[1L]][1]
         if ((.Platform$OS.type == "windows") &&
             (devname %in% winfontdevs))
           par(family = "sans")
         if (capabilities("aqua") &&
             devname %in% macfontdevs)
           par(family = "sans")
         },
       pos = "JapanEnv")

setHook("plot.new", get("familyset_hook", pos = "JapanEnv"))
setHook("persp", get("familyset_hook", pos = "JapanEnv"))

このコード自体は、ずいぶん昔にネットで拾ったのだが、どこで拾ったのかを記録していなかった…。