我希望你们都可以帮助我。
我有一个包含两个数据框的列表 -contests
在expvar.
数据框中contests
,每一行都是一场比赛,第一列是比赛的获胜者,第二列是比赛的失败者。在数据框中expvar
,我有特定于玩家的预测变量。这些都是数字。我正在尝试使用 BradleyTerry2 包来分析我的数据。这是我正在使用的代码:
a <- data.frame(read.csv(file.choose()))
b <- data.frame(read.csv(file.choose()))
ablist <- list(contests=a, expvar=b)
Model <- BTm(1, winner, loser, ~level2[..]+(1|..), data=ablist)
这是我得到的错误:
Error in Diff(player1, player2, formula, id, data, separate.ability, refcat, :
'player1$..' and 'player2$..' must be factors with the same levels
我的问题是,我做错了什么?我已经尝试了很多东西,但我不确定这个错误是什么意思。我应该将变量更改为因子吗?为什么/如何?赢家和输家都有相同类别的预测变量。
这是我的输出dput(a)
structure(list(winner = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 6L, 6L, 6L, 6L, 6L,
6L, 6L, 6L, 6L, 7L, 7L, 7L, 7L, 8L, 8L, 8L, 8L, 9L, 9L, 9L, 9L,
9L, 9L, 9L, 9L, 9L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 11L,
11L, 11L, 11L, 11L, 11L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L,
13L, 13L, 13L, 13L, 13L, 13L, 13L, 13L, 13L, 13L, 13L, 14L, 14L,
14L, 14L, 14L, 15L, 15L, 16L, 16L, 16L, 16L, 16L, 16L, 16L, 16L,
16L, 16L, 16L, 17L, 17L, 17L, 17L, 17L, 17L, 17L, 17L, 17L, 17L,
18L, 18L, 18L, 18L, 18L, 18L, 18L, 18L, 18L, 18L, 18L, 19L, 19L,
19L, 19L, 19L, 19L, 19L, 19L, 20L, 20L, 20L, 20L, 20L, 20L, 20L,
20L, 20L, 20L, 21L, 21L, 21L, 21L, 21L, 21L, 21L, 21L, 21L, 22L,
22L, 22L, 22L, 22L, 23L, 23L, 23L, 23L, 23L, 23L, 23L, 23L, 23L,
24L, 24L, 24L, 24L, 24L, 24L, 24L, 24L, 24L, 24L, 24L, 24L, 25L,
25L, 25L, 25L, 25L, 25L, 25L, 25L, 26L, 26L, 26L, 26L, 26L, 26L,
26L, 27L, 27L, 27L, 27L, 28L, 28L, 29L, 29L, 29L, 29L, 29L, 29L,
29L, 29L, 29L, 30L, 30L, 30L, 30L, 30L, 30L, 30L, 30L, 30L, 30L,
30L, 30L, 30L, 31L, 31L, 31L, 31L, 31L, 31L, 31L, 31L, 23L, 13L,
20L, 20L), .Label = c("Arizona Cardinals", "Atlanta Falcons",
"Baltimore Ravens", "Buffalo Bills", "Carolina Panthers", "Chicago Bears",
"Cincinnati Bengals", "Cleveland Browns", "Dallas Cowboys", "Denver Broncos",
"Green Bay Packers", "Houston Texans", "Indianapolis Colts",
"Jacksonville Jaguars", "Kansas City Chiefs", "Miami Dolphins",
"Minnesota Vikings", "New England Patriots", "New Orleans Saints",
"New York Giants", "New York Jets", "Oakland Raiders", "Philadelphia Eagles",
"Pittsburgh Steelers", "San Diego Chargers", "San Francisco 49ers",
"Seattle Seahawks", "St. Louis Rams", "Tampa Bay Buccaneers",
"Tennessee Titans", "Washington Redskins"), class = "factor"),
loser = structure(c(4L, 9L, 17L, 27L, 27L, 28L, 28L, 29L,
29L, 5L, 6L, 11L, 12L, 16L, 18L, 20L, 23L, 26L, 29L, 30L,
7L, 7L, 8L, 8L, 9L, 13L, 15L, 17L, 23L, 24L, 32L, 10L, 15L,
16L, 23L, 26L, 28L, 29L, 1L, 2L, 6L, 10L, 11L, 12L, 16L,
20L, 20L, 23L, 26L, 30L, 11L, 11L, 12L, 14L, 15L, 18L, 20L,
24L, 29L, 8L, 15L, 16L, 32L, 4L, 7L, 15L, 21L, 7L, 8L, 12L,
21L, 24L, 27L, 28L, 30L, 32L, 2L, 8L, 16L, 20L, 22L, 23L,
26L, 30L, 6L, 11L, 11L, 14L, 18L, 28L, 6L, 7L, 8L, 11L, 12L,
15L, 17L, 31L, 3L, 7L, 8L, 11L, 13L, 13L, 15L, 19L, 25L,
26L, 31L, 10L, 11L, 12L, 13L, 14L, 10L, 23L, 4L, 4L, 10L,
16L, 19L, 22L, 23L, 26L, 27L, 28L, 29L, 1L, 5L, 6L, 11L,
11L, 12L, 13L, 15L, 20L, 21L, 1L, 4L, 4L, 10L, 16L, 17L,
22L, 23L, 27L, 28L, 29L, 2L, 11L, 12L, 16L, 23L, 26L, 27L,
30L, 1L, 3L, 5L, 7L, 9L, 24L, 25L, 27L, 28L, 32L, 1L, 4L,
4L, 7L, 16L, 17L, 19L, 29L, 31L, 10L, 13L, 16L, 22L, 30L,
1L, 2L, 8L, 9L, 21L, 25L, 27L, 28L, 29L, 3L, 3L, 7L, 7L,
8L, 8L, 9L, 13L, 15L, 19L, 26L, 32L, 10L, 16L, 16L, 19L,
22L, 23L, 23L, 30L, 4L, 11L, 22L, 28L, 29L, 29L, 32L, 22L,
27L, 29L, 29L, 9L, 32L, 2L, 5L, 6L, 11L, 12L, 16L, 18L, 20L,
28L, 3L, 6L, 7L, 8L, 11L, 12L, 13L, 14L, 15L, 15L, 16L, 18L,
25L, 1L, 8L, 9L, 11L, 20L, 24L, 24L, 28L, 7L, 18L, 29L, 32L
), .Label = c("Arizona Cardinals", "Atlanta Falcons", "Baltimore Ravens",
"Buffalo Bills", "Carolina Panthers", "Chicago Bears", "Cincinnati Bengals",
"Cleveland Browns", "Dallas Cowboys", "Denver Broncos", "Detroit Lions",
"Green Bay Packers", "Houston Texans", "Indianapolis Colts",
"Jacksonville Jaguars", "Kansas City Chiefs", "Miami Dolphins",
"Minnesota Vikings", "New England Patriots", "New Orleans Saints",
"New York Giants", "New York Jets", "Oakland Raiders", "Philadelphia Eagles",
"Pittsburgh Steelers", "San Diego Chargers", "San Francisco 49ers",
"Seattle Seahawks", "St. Louis Rams", "Tampa Bay Buccaneers",
"Tennessee Titans", "Washington Redskins"), class = "factor")), .Names = c("winner",
"loser"), row.names = c(NA, -256L), class = "data.frame")
这是为了dput(b)
structure(list(X = structure(1:32, .Label = c("Arizona Cardinals",
"Atlanta Falcons", "Baltimore Ravens", "Buffalo Bills", "Carolina Panthers",
"Chicago Bears", "Cincinnati Bengals", "Cleveland Browns", "Dallas Cowboys",
"Denver Broncos", "Detroit Lions", "Green Bay Packers", "Houston Texans",
"Indianapolis Colts", "Jacksonville Jaguars", "Kansas City Chiefs",
"Miami Dolphins", "Minnesota Vikings", "New England Patriots",
"New Orleans Saints", "New York Giants", "New York Jets", "Oakland Raiders",
"Philadelphia Eagles", "Pittsburgh Steelers", "San Diego Chargers",
"San Francisco 49ers", "Seattle Seahawks", "St. Louis Rams",
"Tampa Bay Buccaneers", "Tennessee Titans", "Washington Redskins"
), class = "factor"), id = 1:32, high = c(0L, 0L, 0L, 0L, 0L,
1L, 1L, 1L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 1L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), level2 = c(0, 0.67,
0, 0.33, 0.25, 0, 0, 0.25, 0.33, 0, 0.25, 0, 0, 0.5, 0, 0, 0.25,
0.33, 0, 0, 0, 0, 0, 0, 0, 0.67, 0.25, 0, 0.2, 0, 0, 0.6), level3 = c(0.25,
0.4, 0.36, 0.3, 0.11, 0.56, 0.38, 0.5, 0.22, 0.33, 0.6, 0.3,
0.57, 0.38, 0.29, 0.43, 0.3, 0.33, 0.29, 0.14, 0.2, 0.22, 0.33,
0.22, 0.5, 0.27, 0.4, 0.2, 0.43, 0.43, 0.33, 0.44)), .Names = c("X",
"id", "high", "level2", "level3"), row.names = c(NA, -32L), class = "data.frame"
谢谢