首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可以在R中重复代码,但替换某些字符吗?(需要做350次)

可以在R中重复代码,但替换某些字符吗?(需要做350次)
EN

Stack Overflow用户
提问于 2016-08-13 01:00:40
回答 1查看 147关注 0票数 1

我正在写一个脚本,用R从互联网上抓取分析师的股票评级和当前股价(使用RStudio);

代码语言:javascript
复制
library(rvest)
BKGURL <- 'http://www.marketbeat.com/stocks/LON/BKG/'   #analysts
BKGwebpage <- read_html(BKGURL)
BKGhtml <- html_nodes(BKGwebpage, "td:nth-child(5) , td:nth-child(4) , td:nth- child(3) , td:nth-child(2) , td:nth-child(1)")
BKG <- html_text(BKGhtml)                               #imports analyst text

BKGprice <- 'http://markets.investorschronicle.co.uk/research/Markets/Companies/Summary?s=BKG:LSE'
BKGpricewebpage <- read_html(BKGprice)
BKGpriceHTML <- html_nodes(BKGpricewebpage, "#wsod td.first")
BKGgbpp <- html_text(BKGpriceHTML)                      #imports current share price in text

在数据框中编译它们之前;( INN的代码没有显示,以节省空间)

代码语言:javascript
复制
Code <- c('BKG', 'INN')
Analysts_Opinion <- c(BKG [2], INN [2])
Consensus <- c(BKG [4], INN [4])
Price_target <- c(BKG [6], INN [6])
Last_rating <- c(BKG [7], INN [7])
Current_price <- c(BKGgbpp [1], INNgbpp [1])

Scrapev1 <- data.frame(Code, Analysts_Opinion, Consensus, Price_target, Last_rating, Current_price)

然后Scrapev1给出了

代码语言:javascript
复制
Code                                    Analysts_Opinion          Consensus Price_target Last_rating Current_price
1  BKG 2 Sell Rating(s), 6 Hold Rating(s), 8 Buy Rating(s) Hold (Score: 2.38) GBX 3,434.29   7/26/2016         2,650
2  INN                                     1 Buy Rating(s)  Buy (Score: 3.00)      GBX 190    2/2/2016        198.00

因此,代码可以很好地导入数据,但我需要重复/复制顶部面板中的代码350次,将每个URL和名称中的349个其他代码更改为"BKG“。目前我不知道该怎么做,因为复制和粘贴都需要相当长的时间,当然在R中有一种更快的方法?

任何关于如何解决这个问题的帮助或建议都将不胜感激。如果代码草率,很抱歉,我已经通过使用这个网站自学了(差劲)R,并且来自药理学背景-对技术感兴趣!

EN

回答 1

Stack Overflow用户

发布于 2016-08-13 01:07:01

您可以使用字符串,然后对其进行解析和计算。但是,我不建议您这样做。在我看来,最好的方法是使用列表和名称。类似于:

代码语言:javascript
复制
library(rvest)
auxlist<- c('BKG', 'ASD', 'QWE')
URLS <- c() # Or list()
webpages <- list()
# etc...
for(comp in auxlist){
  URLS[[comp]] <- paste0('http://www.marketbeat.com/stocks/LON/', comp, '/')
  webpages[[comp]] <- read_html(URLS[[comp]])
  # etc... 
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38923100

复制
相关文章

相似问题

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