Я нашел это в отношении получения нескольких выходных данных из реактивного сценария, но это все еще предполагает, что оба будут использоваться в одном и том же объекте, который в конечном итоге будет выводиться.Тем не менее, даже если я получу эту работу, я обеспокоен тем, что использование этих выходных данных из 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
Конечно, на данный момент ни один из них не возвращает корректно, но учитывая, что время вычислений может стать большим в зависимости от ввода, я быгораздо лучше найти элегантный способ вывести мои результаты из одной реактивной функции.