在闪亮的应用程序中,如何存储用户输入/输出供以后使用?

时间:2016-03-26 19:54:56

标签: r dataframe shiny-server shiny

用户输入文字。

根据此文本,我的应用程序进行预测(KatzPred函数)并返回data.frame - 每次用户输入单词时都会更新。

该函数返回的thes data.frame是这样的:

pred  PKatz

the     0.003
of      0.002
in      0.002
to      0.001

我的服务器应该采用这种预测并与用户文本进行比较,并将data.frame和plot作为输出。

这是我的代码,它没有按预期工作(我只是最后一次预测,无法使用所有预测)。

SERVER.R

teste<-reactive({
            KatzPred(input$userinput)
    })
 output$predTable<-renderDataTable({teste()})

prediction<-reactive({
  a<-c()
  a<-c(a,teste()$term[1])
  a
 })

newtext<-reactive({
            if (length(unlist(strsplit(input$userinput, " ")))>0){
               actual<-unlist(strsplit(input$userinput, " "))
               pred.data<-data.frame(pred = prediction() , actual = actual, correct = prediction()==actual)
               pred.data<-mutate(pred.data, accuracy = cumsum(correct)/1:nrow(pred.data))
            }else{

               pred.data<-data.frame(pred = "", actual = "")

            }
            pred.data
    })
output$accu<-renderDataTable({newtext()})
output$accu2<-renderPlot({
          (ggplot(data= newtext(),aes(x=1:nrow(newtext())))
            +geom_line(aes(y=accuracy, group=1))
             +geom_point(aes(y=accuracy)))
 })

我得到的结果是:

用户输入:我要出去了

pred     actual    correct    accuracy

to        i          FALSE      0
to        am         FALSE      0
to        going      FALSE      0
to        out        FALSE      0

应该是(在R上运行):

pred     actual    correct    accuracy

the       i          FALSE      0
am        am         TRUE       0.5
very      going      FALSE      0.33
out       out        TRUE       0.5

这个应用程序在我右边的图表中执行我想要做的事情(它将用户输入与预测历史进行比较)。

https://nate.shinyapps.io/DSCapstone/

0 个答案:

没有答案