R:切换列表键值映射

时间:2012-02-24 22:29:33

标签: r

现在,我正在使用列表作为字典来映射篮球队的名字以赢得比率)。不知何故,在我完成处理数据之后,键/值映射被切换,因此值本身是正确的,但键不会映射到它们的正确值。有没有可能导致这种情况发生的常见错误?

以下是我正在使用的一些代码,其中csv包含名称(游戏)中的信息。

games <- read.csv(game_pathname, header = FALSE)
names(games) <- c("GameDate", "DateCount", "HomeID", "AwayID", "HomePts", "AwayPts", "HomeAbbr", "AwayAbbre", "HomeName", "AwayName")
wins <- list()

for (team in unique(games$HomeName)) {
    wins[[team]] <- 0
}

for (i in 1:nrow(games)) {
    if (games$HomePts[i] > games$AwayPts[i]) {
        wins[[games$HomeName[[i]]]] <- wins[[games$HomeName[[i]]]] + 1
    } else {
        wins[[games$AwayName[[i]]]] <- wins[[games$AwayName[[i]]]] + 1
    }
}

>str(games)
'data.frame':   10303 obs. of  10 variables:
 $ GameDate : chr  "2008-11-10" "2008-11-10" "2008-11-11" "2008-11-11" ...
 $ DateCount: int  0 0 1 1 1 2 2 2 2 3 ...
 $ HomeID   : int  113 76 113 76 124 168 312 329 272 329 ...
 $ AwayID   : int  98 234 234 98 204 204 233 167 160 233 ...
 $ HomePts  : int  63 80 76 97 60 76 82 66 80 78 ...
 $ AwayPts  : int  65 49 57 54 73 56 58 70 73 68 ...
 $ HomeAbbr : chr  "ham" "dau" "ham" "dau" ... 
 $ AwayAbbre: chr  "gab" "paq" "paq" "gab" ...
 $ HomeName : chr  "Houston" "Duke" "Houston" "Duke" ...
 $ AwayName : chr  "Georgia Southern" "Presbyterian" "Presbyterian" "Georgia Southern" ...

1 个答案:

答案 0 :(得分:0)

使用

str(yourbasketballdataset)

检查数据集中是否有任何因素。还要确保检查

?relevel
?levels
?as.factor

试图了解一些有关因素的信息。你是一个Python人(我的意思是你使用术语词典)?即使我不明白你为什么使用列表(可能data.frame就足够了),你可能想看看lapply处理列表。

请注意,因素并非隐含在列表中,但通常在数据发生时创建,可以很容易地将其解释为分类数据 - 因子只是分类的R术语。也许,你可以试着发布一个可重复的例子。我知道创造一个是一些工作 - 但它值得喧嚣 - 特别是如果你是一个初学者。因为它是篮球,我甚至可能有一个内在的动机在星期天检查它:)