以下是我从“华尔街日报”下载的数据的输出。
> Search(MySymList, " Net Income")
Fiscal year is July-June. All values AUD Millions. 2018 2017 2016 2015 2014 5-year trend
82 Consolidated Net Income 949 814 376 850 769
86 Net Income 934 792 335 817 737
88 Net Income Growth 18.04% 135.99% -58.93% 10.83% -
103 Net Income After Extraordinaries 934 792 335 817 909
107 Net Income Available to Common 934 792 335 817 565 我想要捕获Net Income,但由于Net Income在数据中的位置(如行号)没有一致性,我特别尝试使用library qdap和Search。它在查找大多数信息方面做得很好,但我对如何删除其他行感到困惑。
我认为exclude可能会有帮助,但它似乎就是不起作用。
Search(MySymList, " Net Income", exclude = "Common")
Error in agrep(term, x, ignore.case = TRUE, max.distance = max.distance, :
unused argument (exclude = "Common")我可以通过其他方式获得Net Income,但我更喜欢只使用一个函数,即Search或library qdap可能提供的任何功能。
任何指导都是非常受欢迎的。
编辑!!
精简后的代码如下所示,因为运行它比为它提供数据更容易。该符号与原始符号不同,因此行号将发生更改。
library(httr)
library(XML)
library(data.table)
library(qdap)
library(Hmisc)
getwsj.quotes <- function(Symbol)
{
MyUrl <- sprintf("https://quotes.wsj.com/AU/XASX/%s/financials/annual/income-statement", Symbol)
Symbol.Data <- GET(MyUrl)
x <- content(Symbol.Data, as = 'text')
wsj.tables <- sub('cr_dataTable cr_sub_capital', '\\1', x)
SymData <- readHTMLTable(wsj.tables)
return(SymData)
}
TickerList <- c("AMC")
SymbolDataList <- lapply(TickerList, FUN = getwsj.quotes)
MySymList <- data.frame()
MySymList <- SymbolDataList[[1]][[2]]
Search(MySymList, " Net Income")致敬斯蒂芬
发布于 2019-03-03 08:00:47
我已经取得了突破,但它可能不是最有效的代码。给第一列起一个简短的名字很有帮助。函数which为搜索提供了精确匹配函数。遗憾的是,我无法回答我自己关于library qdap Search函数的问题。
library(httr)
library(XML)
library(data.table)
library(qdap)
library(Hmisc)
getwsj.quotes <- function(Symbol)
{
MyUrl <- sprintf("https://quotes.wsj.com/AU/XASX/%s/financials/annual/income-statement", Symbol)
Symbol.Data <- GET(MyUrl)
x <- content(Symbol.Data, as = 'text')
wsj.tables <- sub('cr_dataTable cr_sub_capital', '\\1', x)
SymData <- readHTMLTable(wsj.tables)
return(SymData)
}
TickerList <- c("BHP")
SymbolDataList <- lapply(TickerList, FUN = getwsj.quotes)
MySymList <- data.frame()
MySymList <- SymbolDataList[[1]][[2]]
Search(MySymList, " Net Income") # purely for testing what is available.
names(MySymList) <- c("FinElement", "2018", "2017", "2016", "2015", "2014", "5-year trend")
lineNo <- which(MySymList$FinElement == "Net Income")
MySymList[ lineNo:lineNo, ]输出为:
> Ratio 2018 2017 2016 2015 2014 5-year trend
91 Net Income 8,585 8,453 (8,774) 4,109 14,775 感谢所有考虑过这个问题的人。致敬斯蒂芬
https://stackoverflow.com/questions/54955527
复制相似问题