我有以下内容:
library(edgar)
setwd()
years <- c(2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018)
masterIndex <- lapply(years, getMasterIndex)
哪个会创建两个文件来下载数据-并下载索引。
我还可以使用以下内容:
NVDA <- getFilings(2018, 0001045810, '10-K')
将为我获得2018年“ NVDA”的结果,数字0001045810对应于NVDA公司。
我也可以写:
msft <- getFilings(2018, 000789019, '10-K')
将获得Microsoft的数据。
我有这些公司的媒介,例如:
companies <- c("789019", "1045810")
所以我想lapply
遍历此向量,并获取其中的所有公司。
我还想将相同的lapply
应用于不同的年份,即上述years
向量中的所有年份。
我该怎么做?软件包还询问:
Total number of filings to be downloaded=1. Do you want to download (yes/no)?
yes
我必须写yes
-有没有办法为代码中的所有代码“选择”是?
我的问题是如何使用lapply
来获取每年的公司列表NVDA
,Microsoft
等?
即一个清单用于2018年,另一个清单用于2017年,等等。
答案 0 :(得分:1)
我们可以创建一个函数来获取数据并在此处使用outer
library(edgar)
years <- c(2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018)
companies <- c("789019", "1045810")
get_data <- function(x, y) getFilings(x, y, '10-K')
outer(years, companies, Vectorize(get_data))
在这里,我假设您要为所有10-K
form.type
下载数据。
由于options(needs.promptUser = FALSE)
不起作用,我们可以使用@Weihuang Wong here给出的代码自动下载所有内容
x <- capture.output(dput(getFilings))
x <- gsub("choice <- .*", "cat(paste(msg3, '\n')); choice <- 'yes'", x)
x <- gsub("^function", "my_getFilings <- function", x)
writeLines(x, con = tmp <- tempfile())
source(tmp)
,然后在my_getFilings
中呼叫get_data
get_data <- function(x, y) my_getFilings(x, y, '10-K')
outer(years, companies, Vectorize(get_data))