ユーザーが選ぶことができるいくつかのデータ行に応じて、Shinyの動的なプロット数を表示したいとします。私はこれを達成しましたが、私は同じプロットを得ています。時間の正しい量が、間違ったデータで常に。 私はすでにデバッグを試みましたが、ループが動作するようです。プロットIDが 'plot1' 'plot2' 'plot3'の3つのプロットが作成されます。私はプロットを作成するループ内のブラウザもチェックしました... xとyの値は正しいものです... 誰かが私が間違っていることを手掛かりにしていますか?それが今、投稿されるようShinyのプロットの動的数
ui <- bootstrapPage(
navbarPage("Anpassung Lastmodell",
tabPanel("Graph",
fluidRow(width=4,
uiOutput('alphaui'),
uiOutput('graphui')
)
)
)
)
server <- function(input, output, session) {
## Output Graphs
output$alphaui <- renderUI({
# Here I usually have a manually uploaded dataset, so that's why this part is in a dynamic UI
# The user selects the columns of the data he wants in the plots
alphacat <- beaver1
paramnames <- colnames(alphacat)
graphparam <- vector("list",length(paramnames))
for (i in 1:length(paramnames)) {
graphparam[[i]] <- list(checkboxInput(paste0("graphparam",i,sep=""),paramnames[i],value=FALSE))
}
graphparam[[i+1]] <- actionButton("graph_button", "Los!",width="200px")
return(graphparam)
})
output$graphui <- renderUI({
graph <- plots()
graph
})
plots <- eventReactive(input$graph_button, {
# Selecting data to be plotted
alphacat <- beaver1
paramnames <- colnames(alphacat)
paramnames_keep <- isolate(unlist(reactiveValuesToList(input)[paste0("graphparam",1:length(paramnames),sep="")]))
paramnames <- cbind(paramnames,paramnames_keep)
paramnames <- subset(paramnames,paramnames[,"paramnames_keep"]==TRUE,"paramnames")
graph <- list()
i <- 1
for (i in 1:length(paramnames)) {
plotname <- paste("plot",i, sep="")
x <- alphacat[,paramnames[i]]
y <- alphacat$time
output[[plotname]] <- renderPlot({
plot(x,y)
})
graph[[i]] <- plotOutput(plotname,height=330,width=300)
tagList(graph)
}
return(graph)
})
}
shinyApp(ui,server)
再現可能な例がなければ、あなたを助けるのは難しいです。参照:https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example – Florian
さて、私は自分のエントリを編集しました。申し訳ありませんが、コードはまだかなり残っていますが、それが必要です。 –