2013-06-11 4 views
-3

Это продолжение моего предыдущего вопроса, когда я пытался загрузить данные параметров из yahoo finance. Это все еще не работает. Но я нашел другой код в Интернете, который работает, но вывод в формате, с которым я не умею работать, поскольку я немного новичок в 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")) 

Финансы Yahoo страница из которой извлекается вышеуказанная информация:

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

Я хочу создать векторы для ударов, option sym bols, цену предложения, цену запроса и т. д. из вышеперечисленных опционных цен.

Как это достичь.

+1

Просьба привести воспроизводимый пример. Как мы должны выяснить, что случилось, не зная кода, который вы использовали? – geotheory

+0

Копирование/вставка вывода 'dput' приводит к ошибке. Вы сами это проверяли? – Arun

+1

Где я пишу что-то не так. Все, что я прошу, это прочитать. Пожалуйста, внимательно прочитайте, прежде чем принимать отрицательные голоса. – Zanam

ответ

2

Я не могу заставить ваш код работать, даже если я загружаю пакет R timeDate. Но, как только я избавился от частей Stock.date и Quote.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] 
Смежные вопросы