R-错误的引用和变量设置

R-错误的引用和变量设置,r,debugging,variables,R,Debugging,Variables,你好 在下面的示例中,引用似乎有问题。该代码重新组装了2v2游戏的国际象棋排名系统的计算。“数据”中的每一行都是游戏的结果 用户表包含所有正在玩游戏的人。人们可以玩6个类别:“INT”、“LKS”、“SOD”、“SJV”、“LOY”和“STA”。“性别”列表示0或1的男性/女性-此列不应更新 数据文件在本帖末尾提供。 这是我现在拥有的代码: data <- read.csv("data.txt", header=F, quote="") colnames(data) <- c("us

你好

在下面的示例中,引用似乎有问题。该代码重新组装了2v2游戏的国际象棋排名系统的计算。“数据”中的每一行都是游戏的结果

用户表包含所有正在玩游戏的人。人们可以玩6个类别:“INT”、“LKS”、“SOD”、“SJV”、“LOY”和“STA”。“性别”列表示0或1的男性/女性-此列不应更新

数据文件在本帖末尾提供。 这是我现在拥有的代码:

data <- read.csv("data.txt", header=F, quote="")
colnames(data) <- c("user", "p1","p2", "skill","win","looser","time")

data <- data[-which(data$user==data$p1),]
data <- data[-which(data$user==data$p2),]

users <- data.matrix(read.csv("users.txt", header = FALSE, row.names = 1))
colnames(users) <- c("sex", "INT", "LKS", "LOY", "SJV", "SOD", "STA")
  for (i in 1:nrow(data)) {
    game <- data[i,]
    winner.old <- users[game$win,    game$skill]
    looser.old <- users[game$looser, game$skill]
    winner.new <- winner.old + 32/2 * (1 - 0 + (1/2) * (looser.old-winner.old) / 200)
    looser.new <- looser.old + 32/2 * (0 - 1 + (1/2) * (winner.old-looser.old) / 200)
    users[game$win,    game$skill] <- winner.new
    users[game$looser, game$skill] <- looser.new
  }

这似乎引用了错误的技能栏。我试着在下图中说明这个问题。很抱歉,有点凌乱-但我已经试着用颜色编码了!该输出由i因子内部为整数生成,如果将它们用于子集,则使用内部表示:

DF <- data.frame(x=1:10)
DF$g <- c("b", "a")
#     x g
# 1   1 b
# 2   2 a
# 3   3 b
# 4   4 a
# 5   5 b
# 6   6 a
# 7   7 b
# 8   8 a
# 9   9 b
# 10 10 a

col <- factor("g", levels=c("g", "x"))

DF[, col]
#[1]  1  2  3  4  5  6  7  8  9 10
as.integer(col)
#[1] 1

你能发布一些更简单的说明问题的东西吗?问题是参考文献似乎是错误的,如图所示。在这里,我会得到两个不同的结果,这取决于我是键入变量的值还是仅仅使用变量本身(1201对1202)
game$skill BINGO!非常感谢。这似乎解决了问题!:-)
DF <- data.frame(x=1:10)
DF$g <- c("b", "a")
#     x g
# 1   1 b
# 2   2 a
# 3   3 b
# 4   4 a
# 5   5 b
# 6   6 a
# 7   7 b
# 8   8 a
# 9   9 b
# 10 10 a

col <- factor("g", levels=c("g", "x"))

DF[, col]
#[1]  1  2  3  4  5  6  7  8  9 10
as.integer(col)
#[1] 1
DF[, as.character(col)]
#[1] "b" "a" "b" "a" "b" "a" "b" "a" "b" "a"