我正在构建一个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)