dplyr中の関数において変数をcharacter stringで指定しないこと
以下より。
http://stackoverflow.com/questions/25546759/randomness-in-dplyr/25548505?noredirect=1#comment39903225_25548505
たとえばn_distinct関数の対象を文字列で指定すると不安定な結果が返ってくる。
library(dplyr) > summarise(mtcars, n_distinct("mpg")) n_distinct("mpg") 1 23 > summarise(mtcars, n_distinct("mpg")) n_distinct("mpg") 1 18 > summarise(mtcars, n_distinct("mpg")) n_distinct("mpg") 1 16 > summarise(mtcars, n_distinct("mpg")) n_distinct("mpg") 1 16 > summarise(mtcars, n_distinct("mpg")) n_distinct("mpg") 1 16
vectorで指定すれば何度やっても正確な答えが返ってくる。
> summarise(mtcars, n_distinct(mpg)) n_distinct(mpg) 1 25 > summarise(mtcars, n_distinct(mpg)) n_distinct(mpg) 1 25
githubのissueに挙がっているのでバグとして修正されると思うけどとりいそぎメモ。