首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R qdap Search exclude语法

R qdap Search exclude语法
EN

Stack Overflow用户
提问于 2019-03-02 13:27:30
回答 1查看 40关注 0票数 0

以下是我从“华尔街日报”下载的数据的输出。

代码语言:javascript
复制
> 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 qdapSearch。它在查找大多数信息方面做得很好,但我对如何删除其他行感到困惑。

我认为exclude可能会有帮助,但它似乎就是不起作用。

代码语言:javascript
复制
Search(MySymList, " Net Income", exclude = "Common")
Error in agrep(term, x, ignore.case = TRUE, max.distance = max.distance,  : 
  unused argument (exclude = "Common")

我可以通过其他方式获得Net Income,但我更喜欢只使用一个函数,即Searchlibrary qdap可能提供的任何功能。

任何指导都是非常受欢迎的。

编辑!!

精简后的代码如下所示,因为运行它比为它提供数据更容易。该符号与原始符号不同,因此行号将发生更改。

代码语言:javascript
复制
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")

致敬斯蒂芬

EN

回答 1

Stack Overflow用户

发布于 2019-03-03 08:00:47

我已经取得了突破,但它可能不是最有效的代码。给第一列起一个简短的名字很有帮助。函数which为搜索提供了精确匹配函数。遗憾的是,我无法回答我自己关于library qdap Search函数的问题。

代码语言:javascript
复制
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, ]

输出为:

代码语言:javascript
复制
> Ratio  2018  2017    2016  2015   2014 5-year trend
91 Net Income 8,585 8,453 (8,774) 4,109 14,775 

感谢所有考虑过这个问题的人。致敬斯蒂芬

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54955527

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档