2017-11-25 2 views
1

Ich arbeite an einer glänzenden App in R, um das nächste Wort des eingegebenen Textes vorherzusagen. Jedes Mal, wenn ich die App betreibe ich diese FehlerFehler: kann den Typ 'Umgebung' nicht in einen Vektor vom Typ 'Zeichen' einbinden

Listening auf http://127.0.0.1:5714 Warnung: Fehler in as.character: kann nicht Typ ‚Umwelt‘ zu Vektor von

Typ ‚Charakter‘

Stapel Spur coerce (innerste zuerst): 1: runapp

Fehler: kann nicht Typ ‚Umwelt‘ auf Vektor vom Typ coerce ‚Charakter‘

ich habe versucht, alles, was ich kann, ‚T scheinen die Ausgabe

suppressWarnings(library(shiny)) 

    shinyUI(fluidPage(

    # Application title 
    navbarPage("Coursera Word Predection Final Project", 
     tabPanel("Home"), 
     navbarMenu("Method", 
        tabPanel("Description", p("This app uses a ngram backoff 
    model to predict the next word in a sentence.")) 
        )), 

    # Sidebar layout 
    sidebarLayout(

    sidebarPanel(
    textInput("sentence", "Continue the sentence here below", value = "this 
    is a result of the"), 
    sliderInput("obs", "maximum predictions:", 
       min = 0, max = 30, value = 10 
    ) 

    ), 

    mainPanel(
    h4("Sentence"), 
    verbatimTextOutput("text"), 

    h4("Prediction"), 
    verbatimTextOutput("prediction") 
) 
) 
) 
) 


pred_words <- function(sentence, n = 10){ 
sentence <- removeNumbers(sentence) 
sentence <- removePunctuation(sentence) 
sentence <- tolower(sentence) 
words <- unlist(strsplit(sentence, split = " ")) 
words <- tail(words, 5) 
word1 <- words[1];word2 <- words[2];word3 <- words[3];word4 <- 
words[4];word5 <- words[5]; 
datasub <- data.table() 
if (nrow(datasub)==0 & !is.na(word5)) { 
    if(nrow(datasub) == 0) datasub <- subset(ngram6, w1==word1 & w2==word2 & 
    w3==word3 & w4==word4 & w5==word5) 
    if(nrow(datasub) == 0) datasub <- subset(ngram5, w1==word2 & w2==word3 & 
    w3==word4 & w4==word5) 
    if(nrow(datasub) == 0) datasub <- subset(ngram4, w1==word3 & w2==word4 & 
    w3==word5) 
    if(nrow(datasub) == 0) datasub <- subset(ngram3, w1==word4 & w2==word5) 
    if(nrow(datasub) == 0) datasub <- subset(ngram2, w1==word5) 
    } 

    if (nrow(datasub)==0 & !is.na(word4)) { 
    if(nrow(datasub) == 0) datasub <- subset(ngram5, w1==word1 & w2==word2 & 
    w3==word3 & w4==word4) 
    if(nrow(datasub) == 0) datasub <- subset(ngram4, w1==word2 & w2==word3 & 
    w3==word4) 
    if(nrow(datasub) == 0) datasub <- subset(ngram3, w1==word3 & w2==word4) 
    if(nrow(datasub) == 0) datasub <- subset(ngram2, w1==word4) 
    } 

    if (nrow(datasub)==0 & !is.na(word3)) { 
    if(nrow(datasub) == 0) datasub <- subset(ngram4, w1==word1 & w2==word2 & 
    w3==word3) 
    if(nrow(datasub) == 0) datasub <- subset(ngram3, w1==word2 & w2==word3) 
    if(nrow(datasub) == 0) datasub <- subset(ngram2, w1==word3) 
    } 

    if (nrow(datasub)==0 & !is.na(word2)) { 
    if(nrow(datasub) == 0) datasub <- subset(ngram3, w1==word1 & w2==word2) 
    if(nrow(datasub) == 0) datasub <- subset(ngram2, w1==word2) 
    } 

    if (nrow(datasub)==0 & !is.na(word1)) { 
    if(nrow(datasub) == 0) datasub <- subset(ngram2, w1==word1) 
    if(nrow(datasub) == 0) datasub <- head(ngram1) 
    } 

    if(nrow(datasub) > 0){ 
    } 

    } 


    # Define server logic for the Word Prediction application 
    shinyServer(function(input, output) { 
reactive({ 
    pred_words(input$sentence, input$obs); 
}) 
output$prediction <- renderPrint({ 
    ds <- data_prediction() 
    if(nrow(ds)>0) { 
    head(subset(ds, freq==max(ds$freq))[,ncol(ds)-1],3) 
    cat( 
     paste(head(ds[,ncol(ds)-1]), collapse=', ') 
    ) 
    } 
}) 
}) 

# Run the application 
shinyApp(ui = shinyUI, server = shinyServer) 

Antwort

1

shinyUI und shinyServer sind Funktionen von Shiny zu verstehen. Sie wollen shinyApp() in Ihrer aktuellen ui und Server-Funktion zu übergeben, wie:

library(shiny) 

ui <- fluidPage(

) 

server <- function(input, output) { 

} 

shinyApp(ui = ui, server = server) 
+0

Vielen Dank, es hat funktioniert. Jetzt muss ich nur den neuen Fehler beheben, den ich bekommen habe. Ich schätze es wirklich –

0

Fehler: kann nicht Typ ‚Umwelt‘ auf Vektor vom Typ ‚Charakter‘ coerce ist am häufigsten, wenn wir beobachten, verwenden() statt von reaktiven innerhalb der Serverfunktion

Verwandte Themen