#install.packages("shinythemes")
#install.packages("shinyjs")
install.packages("DT")
install.packages("reshape2")
library(shiny)
library(shinythemes)
library(shinyjs)
library(DT)
library(reshape2)
data <- read.csv("C:/Users/Kanchan/Desktop/timeforcompletion.csv")
server <- function(input, output, session) {
dat <- reactive ({
row1 <- row.names (data[data$Chromosomes == input$select &
data$Data.per.chromosomes == input$select1 &
data$CPU.worker == input$select2,])
row1 <- as.numeric(row1)
out1 <- data$Num.of.workers[row1]
out2 <- data$Time.to.complete..Mins.[row1]
val <- data.frame(Name = c("Num of workers","Time.to.complete..Mins." ), Value = c(out1,out2)
,stringsAsFactors = FALSE)
#require(reshape2)
#melt(val)
return(val)
})
output$mytable <- DT::renderDataTable(dat())
}
ui <- fluidPage( theme = shinytheme("cosmo"),
shinyjs::inlineCSS(list(body = "color:DarkBlue")),
titlePanel("WQ-MAKER"),
sidebarLayout(
sidebarPanel(
"Sidebar"
), #endsidebarpanel
mainPanel(
selectInput("select", label = h3("Chromosomes"),
choices = list("12" = 1, "24" = 2),
selected = 1),
selectInput("select1", label = h3("Data per chromosomes"),
choices = list("100000" = 1, "200000" = 2, "1000000" = 3),
selected = 1),
selectInput("select2", label = h3("CPU per worker"),
choices = list("4" = 1),
selected = 1),
#textOutput("text1")
hr(),
DT::dataTableOutput("mytable")
)#end mainpanel
)# end sidebarlayout
)
shinyApp(ui = ui, server = server)
输入数据集如下所示:
Chromosomes Data per chromosomes CPU/worker Num of workers Time to complete (Mins)
12 100000 4 3 16.8333
24 100000 4 3 23.4167
12 200000 4 3 23.1333
12 1000000 4 3 54.7667
12 1000000 4 7 17.5444
我明白问题在于输出$ mytable。请帮我纠正代码以返回显示2个值的输出。
工人数:xxx 完成时间:xxxx
答案 0 :(得分:1)
第一个问题似乎是您的dat
函数按值过滤数据框,但您的selectInput
选项与任意索引相关联,这些索引与原始{ {1}}。丢失data
,= 1
等,应用程序几乎可以正常运行。
= 2
接下来,如果没有返回数据值,则需要 selectInput("select", label = h3("Chromosomes"),
choices = list("12", "24"),
selected = 1),
selectInput("select1", label = h3("Data per chromosomes"),
choices = list("100000", "200000", "1000000"),
selected = 1),
selectInput("select2", label = h3("CPU per worker"),
choices = list("4"),
selected = 1),
函数返回NULL。
dat
现在您应该看到一个打印有值的数据框,但此时您可能需要调整输出以使其看起来更像您最初想要的内容。如果没有值与选择条件匹配,您可能还希望应用程序打印友好消息。两者都留给读者练习。 :)