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 

Спасибо всем, кто задумывался над этой проблемой. С уважением Стивен

Другие вопросы по тегам