0

R で BradleyTerry2 パッケージを使用すると問題が発生します。データは次のようになります。別のコードからデータを作成しましたが、フォーマットは BradleyTerry の例 ( https://cran.r-project.org/web/packages/BradleyTerry2/vignettes/BradleyTerry.pdf )の「citations.sf」と同じだと思います。

   player1 player2 win1 win2
1        1       2   10    0
2        1       3   10    0
3        1       4    5    5
4        1       5   10    0
5        1       6    9    1
6        2       3    6    4
7        2       4    4    6
8        2       5    5    5
9        2       6    8    2
10       3       4    2    8
11       3       5    7    3
12       3       6    6    4
13       4       5   10    0
14       4       6    9    1
15       5       6    4    6

ただし、実行するspeedModel <- BTm(cbind(win1, win2), player1, player2, data = dat)と、次のようなエラーメッセージが表示されます。

Diff(player1, player2, formula, id, data, separate.ability, refcat, : 'player1$..' と 'player2$..' は同じレベルの因子でなければなりません

StackOverflow の別のページ ( Updated with data: Error in Diff...must be factor with the same levels ) を見て、以下のコードを試しました。(ただし、それが何をするのか理解していません。)

levels(dat[,1]) <- dat(c(dat[,1], dat[,2]))
levels(dat[,2]) <- dat(c(dat[,1], dat[,2]))

ただし、BTm() 関数は同じメッセージをスローします。誰に何ができるか教えてもらえますか?

これが結果ですdput(dat)

structure(list(player1 = structure(c(1L, 1L, 1L, 1L, 1L, 2L, 
2L, 2L, 2L, 3L, 3L, 3L, 4L, 4L, 5L), .Label = 1:6), player2 = structure(c(2L, 
3L, 4L, 5L, 6L, 3L, 4L, 5L, 6L, 4L, 5L, 6L, 5L, 6L, 6L), .Label = 1:6), 
win1 = c(10L, 10L, 5L, 10L, 9L, 6L, 4L, 5L, 8L, 2L, 7L, 6L, 
10L, 9L, 4L), win2 = c(0L, 0L, 5L, 0L, 1L, 4L, 6L, 5L, 2L, 
8L, 3L, 4L, 0L, 1L, 6L)), row.names = c(NA, -15L), class = "data.frame")
4

1 に答える 1