2012-02-24 98 views
0

現在,我使用列爲字典映射籃球隊名贏率)。不知何故,在完成處理我所擁有的數據之後,鍵/值映射會被切換,以使值本身正確,但鍵不會映射到正確的值。有沒有可能導致這種情況發生的常見錯誤?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" ... 
+3

因素的不當使用浮現在腦海。 – flodel 2012-02-24 22:38:21

+0

我不認爲我在使用因素,除非它們在列表中以某種方式隱含?我基本上做的就是查找字典值並用一些簡單的算術更新它們。 – user1230611 2012-02-24 22:40:53

+0

因爲stringsAsFactor = TRUE的默認設置,輸入數據時經常會彈出一些因子。因此,列中包含單個字符的數字數據最終會看起來像數字。同樣,默認值也可以與data.frame函數一起使用。 – 2012-02-24 22:44:16

回答

0

使用

str(yourbasketballdataset) 

,以檢查是否有您的數據集的任何因素。請務必檢查

?relevel 
?levels 
?as.factor 

當試圖瞭解一些因素。你是Python人嗎(我的意思是自從你使用術語詞典)?儘管我不明白你爲什麼使用列表(可能data.frame就足夠了),但你可能想看看lapply來處理列表。

注意的因素不是列表中隱含的,但是當發生數據,可以很容易被解釋爲分類數據往往創造 - 因子僅僅是分類R項。也許,你可以嘗試發佈一個可重複的例子。我知道這是創造一件作品的一些工作 - 但值得一提 - 尤其是如果你是初學者。而導致它的籃球我甚至可能有內在的動力,以檢查它在週日:)

+0

我在上面添加了一個代碼片段。我正在做一個我們應該使用R的任務,但我很習慣用Python做事情,所以我很確定我沒有這樣做R方式。 – user1230611 2012-02-24 23:26:56

+0

使用子集和輸入來提供您正在使用的一些數據。而沒有這種可能不是最有說服力的還是在R.做到這一點最快的方式也可能會更容易弄清楚你想要什麼1),說明你的話2想要什麼)提供樣本輸出數據幀爲好。如果您向我們提供可重複的示例並明確說明您希望從中獲得什麼,那麼您很可能會得到可用的回覆。如果你必須從你的代碼中弄清楚它會使它變得更加困難。 – 2012-02-25 05:18:53