У меня есть эта проблема, которая не имеет для меня никакого смысла.R Заполнение данных в цикле for
TickerList <- c("NAB.AX", "WES.AX", "TLS.AX", "CSL.AX", "WPL.AX", "SUN.AX")
for (Ticker in TickerList)
{
tickerdata.w <- get.hist.quote(Ticker, start = "2000-01-01",compression = "w", quote = "AdjClose")
#This is to get Continuous Compounding Return
ticker.log.data <- log(lag(tickerdata.w)) - log(tickerdata.w)
#This should give the name of the ticker to the log data
#eg, the first one will end up with a NAB.AX
assign(Ticker, ticker.log.data)
#Now I want to get the first data into a dataframe.
#So I want MyData to hold the NAB.AX log data.
#I know the loop works but there is something wrong with assigning the ticker data to the dataframe.
if (Ticker == TickerList[1]) {
MyData = (Ticker)
#And now the rest are to be merged into the dataframe
} else {
MyData = merge(MyData, Ticker)
}
}
Однако, это просто не работает. Единственное, что входит в dataframe, это имя, такое как NAB.AX, а не данные.
Любое руководство было бы очень желанным.
Ваш пример не воспроизводится. Что такое get.hist.quote? В каком пакете он живет? –
Я непреднамеренно (возможно, niavely) думал, что когда я назначил Ticker в data.frame, тикер станет тикером.log.data. После броска в некоторые отпечатки я обнаружил, что ticker.log.data все еще существует после назначения, и я смог использовать этот data.frame для заполнения MyData в цикле if. Надеюсь, это поможет кому-то в будущем. – Stephen
К сожалению, get.hist.quote находится в библиотеке (tseries). – Stephen