r-如果节点(循环内)中没有内容,如何在rvest中为丢失的结果编写NA,以及如何将变量与结果合并



嗨,我是R的新手,试着从一个包含阿迪达斯、宝马等公司名称的文本文件中获取雅虎金融的股票代码/符号,以便稍后进行事件研究。这个文件包含大约800个名称。其中有些可以在雅虎找到,有些则不然。(没关系(

我的循环工作到目前为止,但遗漏的结果将不会显示。此外,它只创建一个包含可以找到的数字和结果的表。但我想创建一个列表,显示变量i("firmen"(和已经找到的结果,或者在没有结果的情况下显示NA。

希望你们能帮助我。谢谢

我的代码:

library(rvest)
# company_names
firmen <- c(read.table("Mappe1.txt"))
# init
df <- NULL
# loop for search names in Yahoo Ticker Lookup
for(i in firmen){
# find url
url <- paste0("https://finance.yahoo.com/lookup/all?s=", i, "/")
page <- read_html(url,as="text")
# grab table
table <- page %>%
html_nodes(xpath = "//*[@id='lookup-page']/section/div/div/div/div[1]/table/tbody/tr[1]/td[1]") %>%
html_text() %>%
as.data.frame()
# bind to dataframe
df <- rbind(df, table)
}

我解决了第一个问题,现在空节点(如果在yahoo页面上没有找到"I"(将显示为"I";NA";

这是代码:

library(rvest)
# teams
firmen <- c(read.table("Mappe1.txt"))
# init
df <- NULL
table <- NULL
# loop
for(i in firmen){
# find url
url <- paste0("https://finance.yahoo.com/lookup/all?s=", i, "/")
page <- read_html(url,as="text")
# grab ticker from yahoo finance
table <- page %>%
html_nodes(xpath = "//*[@id='lookup-page']/section/div/div/div/div[1]/table/tbody/tr[1]/td[1]") %>%
html_text(trim=TRUE) %>% replace(!nzchar(table), NA) %>%
as.data.frame()

# bind to dataframe
df <- rbind(df,table)
}

现在只剩下一个问题

如何合并";df";以及";firmen";合并为一个具有以下列的表:

"tickers"=df和";firmen"=firmen

因为df只有一个名为"的列"根据结果和列表,firmen将许多公司放在多个栏中,但只有一行。

基本上我需要转换列表";firmen";但我不知道是怎么回事

感谢的帮助

最新更新