2017-04-26 3 views
1

이것은 두 번째 질문입니다. 이것은 내 첫 번째 질문과 관련이 있습니다. Should I use for loop? OR apply?목록의 반복적 인 부분 집합을 수행하는 더 빠른 방법

NHL 초안 데이터를 분석하고 있습니다. 첫 번째 질문에 대한 답변을 보면, 내가 분할 사용하는 것을 배웠다 :

canucks_year <- split(canucks, canucks$Year) 

을하지만 나는 그런 canucks_2000 만 해당 년의 데이터 프레임을 포함 canucks_2001 새로운 개체를 만들고 싶어. 그래서, 다음과 같이 코딩했습니다 :

canucks_2000 <- canucks_year[["2000"]] 
canucks_2001 <- canucks_year[["2001"]] 
canucks_2002 <- canucks_year[["2002"]] 
canucks_2003 <- canucks_year[["2003"]] 

이 프로세스를 자동화하기 위해 R의 일부 기능을 사용하는 마법 방법이 있습니까?

답변

2

list2env이라는 함수를 사용할 수 있습니다. 이렇게하면 목록의 모든 요소를 ​​지정된 환경에 배치 할 수 있습니다.

names(canucks_year) = paste0('canucks_', names(canucks_year)) 
list2env(canucks_year, envir = .GlobalEnv) 

가 처음 2000, 2001, 2002에서 목록의 요소를 이름, ... canucks_2000, canucks_2001, canucks_2002에 ... 다음 글로벌 환경에 모든 요소를 ​​넣어 list2env을 사용했다.

+0

나는 첫 줄을 얻었습니다. 나는 두 번째 줄을 이해하지 못한다. 특히 지구 환경이란 무엇이며 왜 그곳에서 요소를 옮겼습니까? 감사! –

+0

@JasonJoonWooBaik 지구 환경은 모든 변수, 함수 및 데이터 세트가 R에있는 주 환경입니다. 기본적으로'variable = something'과 같은 새로운 변수를 만들 때 (함수 내부가 아닌) 글로벌 환경. 'list2env'는 기본적으로리스트의 모든 요소를 ​​가져 와서 각 요소에 대해 canucks_2000 = canucks_year [[ "2000"]]'_ 수행하는 것입니다. – useR

관련 문제