2013-08-13 3 views
1

나의 R 학습 곡선은 나에게 최고가되었습니다. 그래서 ... 나는 여러 시리즈 동물원 개체 목록을 가지고있다. 각 열의 이름을 같은 값으로 변경하려고합니다. 마지막 줄에서이 작업을 시도하고 있습니다 ... 오류없이 실행되지만 이름은 변경되지 않습니다. 어떤 아이디어라도 좋을 것입니다.다중 시리즈 동물원 개체 목록에서 열의 이름을 바꾸려면 어떻게합니까?

require("zoo") 

Get monthly data of stocks. 
symbs = c('AAPL', 'HOV', 'NVDA') 

importData <- lapply(symbs, function(symb) get.hist.quote(instrument= symb, 
     start = "2000-01-01", end = "2013-07-15", quote="AdjClose", provider = "yahoo", 
     origin="1970-01-01", compression = "m", retclass="zoo")) 
names(importData) <- symbs 

#Calculate monthly pct chgs of stocks. 
monthlyPctChgs = lapply(importData, function(x) diff(x, lag = 1)/lag(x, k = -1)) 
names(monthlyPctChgs) <- symbs 

#Merge the pct chgs and the monthly closing prices 
pricingAndPerfsMerged = mapply(merge, importData, lag(monthlyPctChgs, k = -1), 
     SIMPLIFY = FALSE) 

#Rename the columns in each zoo. 
lapply(pricingAndPerfsMerged, function(x) colnames(x) = c('AdjClose', 'MonthlyPerf')) 
+0

결과를 어떤 개체에도 할당하지 않았습니다. –

+0

@DWin 내가 할 때, 실제로 내 동물원 개체의 이름을 바꾸지는 않습니다 ... 이름이 AAPL, HOV 또는 NVDA 인 3 개의 목록을 반환하며 두 개의 빈 열 (정확하게 적어도). – StatsViaCsh

답변

0

복사본의 열 이름을 바꿉니다. 대신 for 루프를 사용하는 것이 좋습니다.

for (i in seq_along(pricingAndPerfsMerged)) { 
    colnames(pricingAndPerfsMerged[[i]]) = c('AdjClose', 'MonthlyPerf') 
} 
+1

정말요? 나는 단지 반복 할 충동에 저항하고있다. 적용 할 수있는 패밀리를 루프가있는 곳이면 어디서나 사용할 필요가 있다는 정보가 있습니다. 승인. 반복하십시오. – StatsViaCsh

+0

@StatsViaCsh [일반 주제에 대한 좋은 평가] (http://stackoverflow.com/questions/7142767/why-are-loops-slow-in-r) – eddi

+0

좋습니다. 고마워. – StatsViaCsh

관련 문제