【问题标题】:Pulling in data from websites in R and diplaying them as R tables从 R 中的网站提取数据并将它们显示为 R 表
【发布时间】:2022-01-18 09:25:50
【问题描述】:

我正在尝试构建一个闪亮的财务仪表板,但我卡在了第一步。我想写一篇如下表

来自https://stockanalysis.com/stocks/

并在我闪亮的环境中将其显示为表格。类似于我在下面的内容,但表格应显示来自任一链接的内容,而不是随机正态分布。

library(shiny)

ui <- fluidPage(
  sliderInput(inputId = "num", 
    label = "Choose a number", 
    value = 25, min = 1, max = 100),
  dataTableOutput("T")
)

server <- function(input, output) {
  output$T <- renderDataTable({
    data.frame(x=rnorm(input$num))
  })
}

shinyApp(ui = ui, server = server)

【问题讨论】:

    标签: r shiny shinydashboard


    【解决方案1】:

    您需要使用 R 中的 rvest 库来抓取表格。 您可以使用安装包 install.packages("rvest").

    要抓取表格,您需要检查网页并找出表格 ID。它看起来像这样:

    代码如下:

    library(rvest)
    library(dplyr)
    url <- ("https://stockanalysis.com/stocks/")
    
    page <- read_html(url)
    
    stocks <- page %>%
      html_nodes('table#symbol-table') %>%
      html_table() %>% .[[1]]
    

    整个 Shiny App 将如下所示:

    library(shiny)
    library(rvest)
    library(dplyr)
    
    url <- ("https://stockanalysis.com/stocks/")
    
    page <- read_html(url)
    
    page
    
    stocks <- page %>%
      html_nodes('table#symbol-table') %>%
      html_table() %>% .[[1]]
    
    ui <- fluidPage(
      sliderInput(inputId = "num", 
                  label = "Choose a number", 
                  value = 25, min = 1, max = 100),
      dataTableOutput("T")
    )
    
    server <- function(input, output) {
      output$T <- renderDataTable({
        stocks
      })
    }
    
    shinyApp(ui = ui, server = server)
    

    【讨论】:

    • 嘿@Vishal A.,这只会为名称以 A 开头的代码提取数据。你知道我如何获取所有代码的数据吗?
    • 请查看this答案。
    猜你喜欢
    • 2017-05-20
    • 1970-01-01
    • 2017-11-13
    • 1970-01-01
    • 2016-01-17
    • 1970-01-01
    • 2019-07-21
    • 2019-02-01
    • 1970-01-01
    相关资源
    最近更新 更多