【R】rstatixのgames_howell_test()で変数に”group”を使うとエラーになる

R

rstatix パッケージのgames_howell_test()を使った際に、次のようなエラーに遭遇したので、紹介します。

Error in `mutate()`:
ℹ In argument: `data = map(.data$data, .f, ...)`.
Caused by error in `map()`:
ℹ In index: 1.
Caused by error in `as_tibble()`:
! Column name `group2` must not be duplicated.
Use `.name_repair` to specify repair.
Caused by error in `repaired_names()`:
! Names must be unique.
✖ These names are duplicated:
  * "group2" at locations 1 and 2.
Run `rlang::last_trace()` to see where the error occurred.

エラーの発生したスクリプト

games_howell_test()の動作確認用に作成した以下のスクリプトでエラーが発生

# サンプルデータ
set.seed(123)
group1 <- rnorm(20, mean = 1, sd = 2)
group2 <- rnorm(20, mean = 2, sd = 2)
group3 <- rnorm(20, mean = 3, sd = 2)
group4 <- rnorm(20, mean = 4, sd = 2)
group5 <- rnorm(20, mean = 5, sd = 2)

x <- c(group1, group2, group3, group4, group5)
y <- factor(rep(c("group1", "group2", "group3", "group4", "group5"), each = 20))

data <- data.frame(val = x, grp = y)

games_howell_test(data, val~grp)

原因の推測

  • エラーメッセージに「`! Column name `group2 must not be duplicated.」と表示されていることから、データフレーム内の「group2」が影響している模様
  • games_howell_test()ソースコードを確認すると、内部関数で「group1」「group2」が使用されている
  • irisのデータで確認すると正常に動作した
  • 以上から、データフレームに使用した「group1」「group2」が関数内部の「group1」「group2」と競合していると推測

対処方法

データのグループ名をgroup1~5をa~eに変更してgames_howell_test()を試してみると、無事に結果が出力された

set.seed(123)
group1 <- rnorm(20, mean = 1, sd = 2)
group2 <- rnorm(20, mean = 2, sd = 2)
group3 <- rnorm(20, mean = 3, sd = 2)
group4 <- rnorm(20, mean = 4, sd = 2)
group5 <- rnorm(20, mean = 5, sd = 2)

x <- c(group1, group2, group3, group4, group5)
y <- factor(rep(c("a", "b", "c", "d", "e"), each = 20)) # 変更部分

data <- data.frame(val = x, grp = y)

games_howell_test(data, val~grp)
# A tibble: 10 × 8
   .y.   group1 group2 estimate conf.low conf.high      p.adj
 * <chr> <chr>  <chr>     <dbl>    <dbl>     <dbl>      <dbl>
 1 val   a      b         0.614   -1.02       2.25    8.18e-1
 2 val   a      c         1.93     0.182      3.68    2.4 e-2
 3 val   a      d         2.48     0.715      4.24    2   e-3
 4 val   a      e         4.47     2.83       6.11    2.31e-8
 5 val   b      c         1.32    -0.308      2.94    1.61e-1
 6 val   b      d         1.86     0.223      3.50    1.9 e-2
 7 val   b      e         3.85     2.35       5.35    8.27e-8
 8 val   c      d         0.547   -1.20       2.30    8.96e-1
 9 val   c      e         2.54     0.914      4.16    6.23e-4
10 val   d      e         1.99     0.351      3.63    1.1 e-2
# ℹ 1 more variable: p.adj.signif <chr>

まとめ

rstatixのgames_howell_test()では、group1group2で始まる名前は避けた方が良さそうです。

この記事が同じエラーが出た方の参考になれば幸いです。

広告

Amazonアフィリエイトでブログ運営しています。
応援いただけると嬉しいです。


ネスカフェ 香味焙煎 ひとときの贅沢 スティック ブラック 20P,箱,レギュラー ソリュブル コーヒー,個包装


AHMAD TEA(アーマッドティー) クラシックセレクション ティーバッグ 20袋

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