2017-04-24 3 views
2

이것은 내 첫 번째 게시물입니다.for 루프를 사용해야합니까? 또는 신청 하시겠습니까?

이 Nhl 초안 데이터 프레임이 있습니다. 내가 뭘하고 싶은지 일종의 재귀 함수를 사용하여 10 개체를 만드는 것입니다.

그래서 Nhl 데이터 프레임을 연도별로 부분 집합하여이 10 개의 개체를 만들고 싶습니다. 여기 (nhl_draft)

Year Overall     Team 
1 2000  1 New York Islanders 
2 2000  2  Atlanta Thrashers 
3 2000  3  Minnesota Wild 
4 2000  4 Columbus Blue Jackets 
5 2000  5 New York Islanders 
6 2000  6 Nashville Predators 
      Player PS 
1 Rick DiPietro 49.3 
2  Dany Heatley 95.2 
3 Marian Gaborik 103.6 
4 Rostislav Klesla 34.5 
5  Raffi Torres 28.4 
6 Scott Hartnell 74.5 
내가 년 밖으로 서브 세트 10 개체를 만들

, 2000 ~ 2009 년 내가 시도, 데이터 세트의 첫 번째 6 행입니다

for (i in 2000:2009) { 
    nhl_draft.i <- subset(nhl_draft, Year == "i") 
} 

하지만이 아무것도하지 않는다. 이 for-loop의 문제점은 무엇입니까? 다른 방법을 제안 할 수 있습니까?

이 내 첫 번째 게시물이는 결국 혼란 경우 알려주세요입니다 ......

+0

감사합니다. 프랭크 .. !!! –

+2

'split '을 사용하여 모든 데이터를 분리하는 것은 어떻습니까? '$ year' 데이터 프레임마다 데이터 프레임 목록을 만듭니다.'$ Year' 데이터 프레임에 대한 데이터 프레임의 목록을 만듭니다.'nhl_draft, nhl_draft, $ nhl_draft $ Year)' – www

+0

L jogo

답변

3

다음 코드는 오류를 해결할 수 있습니다.

# Create an empty list 
nhl_list <- list() 

for (i in 2000:2009) { 
    # Subset the data frame based on Year 
    nhl_draft_temp <- subset(nhl_draft, Year == i) 
    # Assign the subset to the list 
    nhl_list[[as.character(i)]] <- nhl_draft_temp 
} 

하지만 당신은 더 간결 split을 고려할 수 있습니다.

nhl_list <- split(nhl_draft, f = nhl_draft$Year) 
+0

nhl_list를 데이터 프레임으로 변환하는 방법은 무엇입니까? –

+0

'nhl_list'에서 서브 세트 중 하나에 액세스하려고합니까? 데이터 프레임의 이름을 호출하여 각 데이터 프레임에 액세스 할 수 있습니다. 이 경우 이름은'Year'입니다. 예를 들어,'nhl_list [[ "2000"]]'은'2000'의 부분 집합입니다. 이중 브래킷을 사용하고 연도 수를 ""로 묶으십시오. – www

관련 문제