2010-04-26 6 views
16

나는 quantmod 패키지를 사용하여 Yahoo로부터 재무 시리즈 데이터를 가져오고 있습니다.R 개체의 이름을 바꾸려면 어떻게해야합니까?

library(quantmod) 
getSymbols("^GSPC") 
[1] "GSPC" 

"GSPC"개체의 이름을 "SPX"로 변경하고 싶습니다. 내가 reshape 패키지에서 이름 바꾸기 기능을 시도했지만 변수 이름 만 변경합니다. "GSPC"객체에는 벡터 GSPC.Open, GSPC.High 등이 있습니다. GSPC.Open을 SPX.Open 등으로 변경하려면 "GSPC"를 "SPX"로 이름을 바꿉니다. 대상과 내 COLNAMES 이름 바꾸기

답변

28

두 단계 프로세스입니다

SPY <- GSPC# assign the object to the new name (creates a copy) 
colnames(SPY) <- gsub("GSPC", "SPY", colnames(SPY)) # rename the column names 

이 그렇지 않으면, getSymbols 기능이 하지 자동 할당 할 수 있으며, 첫 번째 단계를 건너 뛸 수있는 경우에 (당신 여전히 열의 이름을 바꿔야합니다).

R 너무 지연이라고 평가 채용하고 @backlin에서

SPY <- getSymbols("^GSPC", auto.assign=FALSE) 

코멘트. 그 효과는 "복사"SPY <- GSPC 때 실제로 SPY에 대한 메모리의 새 공간을 할당하지 않는다는 것입니다. R은 객체가 동일하고 객체 중 하나가 수정 된 경우에만 새 사본을 만듭니다 (, 즉 더 이상 동일하지 않은 경우, 다음 행에서 열 이름을 변경하면 예 :). 당신은 정말 GSPC 복사 없지만, 단지 이름 (GSPC)을 잊지 R에게 다음 새 이름 (SPY)을 얻었다 결코

SPY <- GSPC rm(GSPC) colnames(SPY) <- gsub("GSPC", "SPY", colnames(SPY)) 

을 수행하여 그래서. 그런 다음 열 이름을 변경하면 의 새 복사본을 만들 필요가 없습니다. GSPC이 더 이상 존재하지 않으므로 중간 복사본을 만들지 않고 개체의 이름을 변경 한 것입니다.

+0

gsub() 함수는 제 목적을 위해 완벽하게 작동합니다. Shane에게 다시 한 번 감사드립니다. – Milktrader

+10

이것은 당분간 당황 스러웠다. 그래서 나는 다른 사람들을 위해 그것을 명확하게하기 위해 게으른 평가에이 부분을 추가하기를 원했다. 나는 이것이 실제로 R 내에서 일어나는 것을 확인하기 위해 예제를 프로파일 링 한 기억과 시간을 가지고 있습니다. – Backlin

+7

게으른 평가에 대한 참고에 감사드립니다! –

관련 문제