2011-07-18 67 views
1

我想提示用戶輸入ticker symbol(例如GOOG)的控制檯輸入,然後使用R的quantmod軟件包中的getSymbols函數下載刻度數據對於給定的股票代碼,並使用quantmod的barChart函數創建一個圖。提示用戶輸入使用R quantmod getSymbols函數下載刻度數據

我有

s1 <- readline("enter a symbol: ") 
getSymbols(cat('"',s1,'"',sep=""),src="yahoo") 
barChart(s1) 

我得到 「(ChartSeries中需要一個xtsible對象以下錯誤消息在try.xts的x,誤差= 」)錯誤「: ChartSeries中需要一個xtsible對象」

使用只是控制檯(沒有提示輸入)我得到以下工作:

> getSymbols("GOOG",src="yahoo") 
[1] "GOOG" 
> barChart(GOOG) 

我在想什麼?

回答

2

S1是一個字符串,這是不是一個時間序列對象,它是強制轉換到XTS(因爲錯誤狀態)

嘗試:

s1 <- "AAPL" 
getSymbols(s1) 
barChart(get(s1)) 
+0

非常感謝您的幫助!這工作。 –

+0

如果你勾選了接受他的答案作爲正確答案,那麼你會讓傑夫成爲一個快樂的兔子! – Spacedman

2

你不需要cats1是一個人物矢量。另一種選擇,以@傑夫的解決辦法是關閉自動分配:

s2 <- getSymbols(s1, auto.assign=FALSE) 
barChart(s2) 

圖表的名稱將是「S2」,但你可以用name參數變回它的股票代碼:

barChart(s2, name = s1) 
+0

非常好 - 感謝您的幫助! –