2012-02-24 2 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

+0

목록에 내재되어 있지 않은 한 요소를 사용하고 있다고 생각하지 않습니다. 기본적으로 사전 값을 찾고 간단한 산술로 업데이트하는 것뿐입니다. – user1230611

+0

stringsAsFactor = TRUE의 기본 설정으로 인해 데이터를 입력 할 때 요인이 자주 팝업됩니다. 따라서 열에 하나의 문자가있는 숫자 데이터는 숫자처럼 보이는 요소로 끝납니다. 마찬가지로 default는 data.frame 함수와 함께 작동합니다. –

답변

0

사용

str(yourbasketballdataset) 

데이터 집합의 모든 요소가 있는지 여부를 확인합니다. 요소에 대해 조금 배우려는 경우

?relevel 
?levels 
?as.factor 

을 확인하십시오. 당신은 파이썬 사람입니까 (용어 사전을 사용한 이후로)? 목록을 사용하는 이유를 이해하지 못하더라도 (아마도 data.frame으로 충분할 것입니다.) 목록 처리를 위해 lapply을보고 싶을 수 있습니다.

요소는 목록 내에 함축되어 있지는 않지만, 범주 형 데이터로 쉽게 해석 될 수있는 데이터가 발생할 때 종종 생성됩니다. 요소는 범주 형의 R 용어입니다. 어쩌면 재현 가능한 예제를 게시하려고 할 수 있습니다. 나는 그것이 하나를 창조하는 일이라는 것을 알고 있습니다. 그러나 그것은 당신이 초보자 인 경우 특히 가치가 있습니다. 그리고 그것이 농구이기 때문에 나는 일요일에 그것을 확인하는 본질적인 동기를 가질 수도 있습니다 :)

+0

위에 코드 스 니펫을 추가했습니다. 저는 R을 사용하기로되어 있지만, 파이썬에서 일하는 것에 익숙한 과제를하고 있습니다. 그래서 저는 R 방식을 사용하지 않을 것이라고 확신합니다. – user1230611

+0

하위 세트와 dput을 사용하여 작업중인 약간의 데이터를 제공하십시오. 그리고 이것은 아마도 R에서 이것을 수행하는 가장 웅장하거나 가장 빠른 방법이 아닙니다. 또한 원하는 내용을 정확히 설명하는 것이 더 쉬울 수도 있습니다. 1) 단어에서 원하는 것을 정확하게 설명하고 2) 샘플 출력 데이터 프레임도 제공하십시오. 재현 할 수있는 예제를 제공하고이를 벗어나고 자하는 것을 명확하게 밝히면 사용 가능한 응답을 얻게 될 가능성이 더 큽니다. 코드에서 알아 내야 만한다면 더 어려워집니다. –