LoginSignup
7
1

More than 3 years have passed since last update.

R 4.0.0 の破壊的変更まとめ

Posted at

約 1 ヶ月ほど前に R-4.0.0 がリリースされた。 メジャーバージョンアップということで、いくつか破壊的な変更があるようだ。 今後、本格的に移行していくのに備えて、実際の挙動を確認しておきたい。

尚、この記事には新機能の紹介は含まれていない。また、破壊的な変更点も何か漏れがあるかもしれない。気になる方は CHANGES IN 4.0.0 をご覧いただきたい。

stringsAsFactors = FALSE がデフォルトに

  • もともと嫌われることの多かったこの仕様が、遂にデフォルトで FALSE になる。
    • tidyverse の {tibble}{readr} を使って data.frame を作成・読み込みしていたのなら影響はない。
df <- data.frame(letters = letters)
str(df)
'data.frame':   26 obs. of  1 variable:
 $ letters: chr  "a" "b" "c" "d" ...
  • デフォルトを TRUE に変更しようとすると Warning が出る。将来的にはこのオプション自体がなくなる可能性もありそう。
options(stringsAsFactors = TRUE)
Warning message:
In options(stringsAsFactors = TRUE) :
  'options(stringsAsFactors = TRUE)' is deprecated and will be disabled
  • 注意すべきケース
    • data.frame()read.csv() を使っていて、明示的に stringsAsFactors を指定していない場合

matrixarray を継承するようになる

  • matrix は 2d の array なので、自然な変更
matrix_obj <- matrix()
class(matrix_obj)
[1] "matrix" "array"
  • 注意すべきケース
    • class(matrix_obj) の結果として length 1 を期待している場合
    • array の S3 メソッドを利用しているが matrix の S3 が存在している場合 (matrix の S3 が呼ばれてしまう)

plot() ジェネリック関数が {graphics} から {base} へ移動

  • 互換性を維持するために、現時点では {graphics} からも re-export されているが、今後は廃止される可能性がある
environment(plot)
<environment: namespace:base>
  • 注意すべきケース
    • {graphics} から plot を Import しているパッケージを開発している場合

正規表現ライブラリが PCRE1 から PCRE2 へ移行

  • PCRE1 は既に開発が終了しているため
  • PCRE = Perl 5 compatible Regular Expression Library
    • PCRE1: PCRE <= 8
    • PCRE2: PCRE >= 10
extSoftVersion()["PCRE"]
              PCRE 
"10.31 2018-02-12"
  • 注意すべきケース
    • PCRE1 ではサポートされていた記法で利用できなくなるものがある (正規表現に詳しくないので詳細割愛)

参考

7
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
1