R qdap Search исключает синтаксис
У меня есть следующий вывод из данных, которые я скачал из 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")
С уважением Стивен
1 ответ
Я сделал прорыв, но это может быть не самый эффективный код. Очень помогло краткое название первой колонки. Функция 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
Спасибо всем, кто задумывался над этой проблемой. С уважением Стивен