Рендеринг 2 выходов из 1 реактивного скрипта - PullRequest
0 голосов
/ 30 ноября 2018

Я нашел это в отношении получения нескольких выходных данных из реактивного сценария, но это все еще предполагает, что оба будут использоваться в одном и том же объекте, который в конечном итоге будет выводиться.Тем не менее, даже если я получу эту работу, я обеспокоен тем, что использование этих выходных данных из 2 различных функций renderSomething ({}) будет означать, что мой реактивный скрипт должен запускаться дважды каждый раз.

Мой оригинальный код довольно длинный, так что я просто укажу, где у меня проблема:

#main function
    server<-function(input, output){
    main<-reactive({

    #a bunch of stuff producing what it needed for output

    if(nglabels>0){
        #return number of labelings:
        outputText<-paste("Graph has",nglabels,"graceful labelings",sep=" ",collapse=NULL)
        #return FedgeLabel for graph:
        outputGraph<-graph_from_adjacency_matrix(FedgeLabel,mode=c("undirected"),weighted=TRUE,add.colnames=FvertexLabel,add.rownames=FvertexLabel)
      } else {
        outputText<-"No graceful labels"
        #return imported graph as-is
        outputGraph<-graph_from_adjacency_matrix(mat,mode=c("undirected"))
      }
      #reactive in R only allows 1 output, so we need to make a list of these:
      outputList<-list(outputText=outputText,outputGraph=outputGraph)
      return(outputList)
      })
#outputting what was calculated
    output$txt<-renderText({
        getOutput<-main()
        getOutput$outputText})
    output$Graph<-renderPlot({
        getOutput<-main()
        plot(getOutput$outputGraph)})
    } #this is the end brace from the server function

Конечно, на данный момент ни один из них не возвращает корректно, но учитывая, что время вычислений может стать большим в зависимости от ввода, я быгораздо лучше найти элегантный способ вывести мои результаты из одной реактивной функции.

...