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()では、group1, group2で始まる名前は避けた方が良さそうです。
この記事が同じエラーが出た方の参考になれば幸いです。
広告

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

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

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

