我有两个数据帧,一个用于创建wordcloud,另一个用于提供数字输出。
d<- word freq
save 42
earth 14
life 14
aug 12
name 11
wate 11
group 10
email 9
ignore 6
please 6
DF4d<- word freq
save 4
earth 1
life 1
aug 1
name 1
wate 1
group 1
email 9
ignore 6
please 6
接下来,我按如下方式设置了UI,以显示基于das井的wordcloud作为基于DF4派生的数字输出
ui<- fluidPage(
textInput("e-mailSubject", label = "SubjectLine",placeholder =
"'"),actionButton("do", "Click Me"),
numericInput("Audience Size", label = "Target Audience Size", value =
c(10000000)),
dateInput("Date",label = "Date of Campaign"),
mainPanel(plotOutput("Plot1"), textOutput("Output1")))
服务器包含基于DF4和d的输入。
server<-function(input, output, session) {
output$Plot1 <- renderPlot({
set.seed(1234)
wordcloud(words = d$word, freq = d$freq, min.freq = 1,
max.words=200, random.order=FALSE, rot.per=0.35,
colors=brewer.pal(8, "Dark2")) })
output<-renderText(text2<-reactive({input$e-mailSubject
mycorpus2<-Corpus(VectorSource(text2))
mycorpus2<-tm_map(mycorpus2, tolower)
mycorpus2<-tm_map(mycorpus2, removeNumbers)
mycorpus2<-tm_map(mycorpus2, removeWords, c(stopwords("english")))
dtm2<-TermDocumentMatrix(mycorpus2)
m2<-as.matrix(dtm2)
v2 <- sort(rowSums(m2),decreasing=TRUE)
d2 <- data.frame(word = names(v2),freq=v2)
outputtable<-DF4[DF4$variable%in%d2$word,]
outputresult<-sum(outputtable$sum.estimate.)
return(outputresult)
}))
}
shinyApp(ui, server)
我收到了wordcloud。当我在输入框中输入一个句子并按下我的按钮时,我应该得到输出结果。没有错误消息。但我没有得到任何结果。我不确定我的错误在哪里。我请求有人在这里帮助我。输出应该是数字
答案 0 :(得分:0)
我发表评论,但由于声誉还不能 - 下次请提供一个可重复的例子。 (wordcloud
等需要额外的包,我不知道,因此无法成功运行您的代码。)
我怀疑问题是您的textOutput("Output1")
根本没有出现在server
中。试试这个而不是...
部分:
text2 <- reactive({
input$e - mailSubject
mycorpus2 <- Corpus(VectorSource(text2))
mycorpus2 <- tm_map(mycorpus2, tolower)
mycorpus2 <- tm_map(mycorpus2, removeNumbers)
mycorpus2 <-
tm_map(mycorpus2, removeWords, c(stopwords("english")))
dtm2 <- TermDocumentMatrix(mycorpus2)
m2 <- as.matrix(dtm2)
v2 <- sort(rowSums(m2), decreasing = TRUE)
d2 <- data.frame(word = names(v2), freq = v2)
outputtable <- DF4[DF4$variable %in% d2$word, ]
outputresult <- sum(outputtable$sum.estimate.)
return(outputresult)
})
output$Output1 <- renderText(text2)