2017-11-25 6 views
1

RのShinyアプリケーションを使用して、入力されたテキストの次の単語を予測しています。 as.characterでエラーが発生しました:エラー:型 '環境'を '文字'型のベクトルに変換できません

型「文字」

スタックトレース(のベクトルにタイプ「環境」を強要することはできません、私はアプリを実行するたびに、私は

http://127.0.0.1:5714 警告に聞く、このエラーが表示されます最も内側の最初の): 1:runApp

エラー:タイプのベクトルにタイプ「環境」を強要することはできません「文字」

私は私ができることはすべてを試してみました「Tは

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) 

答えて

1

shinyUIshinyServerはシャイニーから機能している問題を理解しているようです。

library(shiny) 

ui <- fluidPage(

) 

server <- function(input, output) { 

} 

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

ありがとう、それは働いた。今すぐ新しいエラーを修正する必要があります。私は本当にそれを感謝します –

0

エラー:あなたが好きな、shinyApp()にあなたの実際のUIとサーバ機能に渡したい、我々は(観測使用するときに型「文字」のベクトルにタイプ「環境」を強要することはできませんが、最も一般的である)の代わりに内部の反応的なサーバー機能の

関連する問題