2013-06-11 145 views
-3

這是我之前試圖從雅虎財經下載選項數據的後續問題。它仍然不起作用。但我發現在互聯網上的另一個代碼工作,但輸出是我無法使用的格式,因爲我對R有點新。從R列表中提取信息

該代碼給了我一個名爲OptionPrices的變量。

以下是其中打印出一幅使用命令修復(OptionPrices)作爲OptionPrices的輸出:


structure(list(call = structure(list(Strike = 26, Symbol = structure(1L, .Label = "VIXM131221C00026000", class = "factor"), 
    Last = 1.8, Chg = 0, Bid = 2.05, Ask = 2.65, Vol = 10L, Open.Int = 10L), .Names = c("Strike", 
"Symbol", "Last", "Chg", "Bid", "Ask", "Vol", "Open.Int"), row.names = c(NA, 
-1L), class = "data.frame"), put = structure(list(Strike = c(24, 
25, 26, 29), Symbol = structure(1:4, .Label = c("VIXM131221P00024000", 
"VIXM131221P00025000", "VIXM131221P00026000", "VIXM131221P00029000" 
), class = "factor"), Last = c(1.05, 2, 3.2, 4.3), Chg = c(0, 
0, 0, 0), Bid = c(1, 1.45, 1.95, 3.8), Ask = c(1.4, 1.85, 2.35, 
4.4), Vol = c(20L, 1L, 10L, 10L), Open.Int = c(20L, 5L, 10L, 
10L)), .Names = c("Strike", "Symbol", "Last", "Chg", "Bid", "Ask", 
"Vol", "Open.Int"), row.names = c(NA, -4L), class = "data.frame"), 
    Stock.ticker = "VIXM", Quote.date = <S4 object of class structure("timeDate", package = "timeDate")>, 
    Strike.date = <S4 object of class structure("timeDate", package = "timeDate")>, 
    Stock.name = "ProShares VIX Mid-Term Futures ETF (VIXM)", 
    Stock.price = 26.34, TTM = 193, Short.rate = 0.0893939393939394), .Names = c("call", 
"put", "Stock.ticker", "Quote.date", "Strike.date", "Stock.name", 
"Stock.price", "TTM", "Short.rate")) 

從當上述信息被提取雅虎金融網頁爲:

http://finance.yahoo.com/q/op?s=VIXM&m=2013-12

我想爲罷工創建矢量,選項sym bols,買入價格,賣價等等,從上面的變量OptionPrices中得到。

我該如何做到這一點。

+1

請提供可重現的例子。如果不知道您使用的代碼,我們應該如何弄清楚什麼是錯誤的? – geotheory

+0

複製/粘貼「輸出」輸出會導致錯誤。你自己檢查了嗎? – Arun

+1

我在哪裏寫錯了什麼。我所要求的是如何讀取它。投反對票前請仔細閱讀。 – Zanam

回答

2

即使我加載R包timeDate,我也無法讓您的代碼正常工作。 但是,一旦我擺脫了Stock.dateQuote.date部分,我能夠看到你給了什麼。

OptionPrices <- structure(list(call = structure(list(Strike = 26, Symbol = structure(1L, .Label = "VIXM131221C00026000", class = "factor"), 
    Last = 1.8, Chg = 0, Bid = 2.05, Ask = 2.65, Vol = 10L, Open.Int = 10L), .Names = c("Strike", 
    "Symbol", "Last", "Chg", "Bid", "Ask", "Vol", "Open.Int"), row.names = c(NA, 
    -1L), class = "data.frame"), put = structure(list(Strike = c(24, 
    25, 26, 29), Symbol = structure(1:4, .Label = c("VIXM131221P00024000", 
    "VIXM131221P00025000", "VIXM131221P00026000", "VIXM131221P00029000" 
    ), class = "factor"), Last = c(1.05, 2, 3.2, 4.3), Chg = c(0, 
    0, 0, 0), Bid = c(1, 1.45, 1.95, 3.8), Ask = c(1.4, 1.85, 2.35, 
    4.4), Vol = c(20L, 1L, 10L, 10L), Open.Int = c(20L, 5L, 10L, 
    10L)), .Names = c("Strike", "Symbol", "Last", "Chg", "Bid", "Ask", 
    "Vol", "Open.Int"), row.names = c(NA, -4L), class = "data.frame"), 
    Stock.ticker = "VIXM", Stock.name = "ProShares VIX Mid-Term Futures ETF (VIXM)", 
    Stock.price = 26.34, TTM = 193, Short.rate = 0.0893939393939394), .Names = c("call", 
    "put", "Strike.date", "Stock.name", 
    "Stock.price", "TTM", "Short.rate")) 

所以,OptionPrices是一個列表,並且看起來你有興趣包含在put元素的信息。 您可以將此元素保存到數據框,然後使用名稱或列號訪問數據框的每個元素(矢量)。

df <- OptionPrices$put 
df$Last 
df[, 3]