如何从Shiny应用程序中的csv文件访问数据?

时间:2019-04-24 08:52:36

标签: r csv shiny

我正在构建一个Shiny应用程序,该应用程序从用户那里获取两个值(年龄和工作时间),并使用.csv文件(我上传了该文件)来计算一些概率。我有一个工作的R脚本,我不知道如何在Shiny应用程序中访问数据框中的值。该概率是用两个for循环计算的,它访问数据帧某些列中的数据。 谢谢! 在R脚本中,它看起来像: 年龄和年份由用户指定,然后       X <年龄+年

  for (i in 1:(nrow(data)-4)){
    if((data[i,9]<=age) & (data[i+4,9]>age)){
      a<-i+1
    }
  }
  for (j in 1:(nrow(data)-4)){
    if((data[j,9]<=X) & (data[j+4,9]>X)){
      b <- j
    }
  }
  p<-sum(data[a:b,10]) 

我的闪亮应用程序(但不起作用)

    library(shiny)
    library(dplyr)
    data <- read.csv("modified.csv", header = TRUE, sep=",")

    ui <- fluidPage(
    titlePanel("probability"),

   #inputs  
    sidebarLayout(
       sidebarPanel(
           sliderInput(inputId = "age",
              label="Specify your age",
              min=1, max=80, value=24), 

     sliderInput(inputId = "mon",
              label="Specify duration [years]",
              min=1, max=80, value=24)
     ),

     #output  
      mainPanel(
        textOutput("probability")

      )
     )
    )

   server <- function(input, output, session) {

   output$probability <- renderText({

   X<-(input$age+intput$mon)

   for (i in 1:(nrow(data)-4)){
     if((data[i,9]<=input$age) & (data[i+4,9]>input$age)){
       a<-i+1
    }
   }
  for (j in 1:(nrow(data)-4)){
    if((data[j,9]<=X) & (data[j+4,9]>X)){
      b <- j
    }
  }
  p<-sum(data[a:b,10])

 #paste("Probability ", input$mon, "years is:")

 })
}

shinyApp(ui=ui, server=server)

0 个答案:

没有答案