У меня есть следующий вывод из данных, которые я скачал из Wall Street Journal.
> 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")
С уважением, Стивен