【发布时间】:2018-03-08 15:24:09
【问题描述】:
我目前正在运行以下代码,以便从quantmod 包中提取一些财务信息。
library(quantmod)
symbols <- c("HOG", "GOOG", "GE")
tickers <- new.env()
lapply(symbols, getFinancials, env=tickers)
BS <- data.frame(lapply(tickers, function(x) {viewFinancials(x, type= 'BS', period = 'A')}))
IS <- data.frame(lapply(tickers, function(x) {viewFinancials(x, type= 'IS', period = 'A')}))
CF <- data.frame(lapply(tickers, function(x) {viewFinancials(x, type= 'CF', period = 'A')}))
df <- rbind(BS, IS, CF)
df <- t(df)
这有点乱,但我可以从这里清理数据并进行一些计算。但是我想知道是否有更有效的方法使用 tidyquant 包,因为我想在许多股票代码上运行它,并且当 quantmod 包无法下载/查找特定的财务信息时,它目前正在中断股票代码。
我正在合作;
library(tidyquant)
library(dplyr)
symbols <- c("HOG", "GOOG", "GE")
stock_financials <- symbols %>%
tq_get(get = "financials")
stock_financials$annual
我可以看到数据是 tibble 中的 tibble,但是如何像以前一样提取信息,或者如何更轻松地访问 stock_financials$annual 的 tibble 数据?
修改和使用
filter(stock_financials, type == "BS") %>% unnest()
从此answer 似乎对我不起作用。
【问题讨论】:
-
尝试使用'tidyr'中的'unnest()'函数而不使用'filter()'。看看这是否有效。
-
我试过了,但仍然无法正常工作。
-
见下面我的回答。这应该将所有内容都放入一个可以根据需要进行过滤的平面数据框(或小标题)。