我想创建一个带有世界云的仪表板,但该图未显示在我闪亮的应用程序上。但是,我可以看到我的绘图与仪表板输入成功交互,并且可以在我的 Rstudio 上显示该绘图。
我的项目有两个文件,第一个是 test.R(编码 utf-8),我把 ui 和服务器放在那里。第二个是 glob.R (encoding CP950) ,我在这里导入数据并定义我的函数来绘制世界云。
library(shiny)
library(shinydashboard)
source('./test_gloable_nlp.R', local = TRUE)
# header
header <- dashboardHeader(title = 'ABC Delicate')
# sidebar
sidebar <- dashboardSidebar(
sidebarMenu(
menuItem("test", tabName = 'id_4', icon = icon('alien'))
)
)
# body
body <- dashboardBody(
tabItems(
tabItem(tabName = 'id_4',
fluidRow(
box(
textInput(
inputId = 'key_word',
label = NULL,
value = 'type in keyword'),
sliderInput(
inputId = 'char_len',
label = '期望出現詞彙最短長度',
min = 0,
max = 50,
value = 1),
sliderInput(
inputId = 'char_freq',
label = '期望最低詞彙出現最低頻率',
min = 0,
max = 50,
value = '1'),
),
box(plotOutput('wc'))
)
)
)
)
# ui
ui = dashboardPage(header, sidebar, body)
# server
server <- function(input, output, session){
output$wc = renderPlot({
plot_word_cloud(df$excerpt, input$key_word, input$char_len, input$char_freq)
})
}
#runapp
shinyApp(ui = ui, server = server)
library(devtools)
library(jiebaR)
library(tm)
library(tmcn)
library(devtools)
library(wordcloud2)
library(tidyverse)
#load data####
setwd("C:/Users/user/Desktop/實習/工研院/環球瑞士工作/shiny")
df = readxl::read_xlsx('nlp.xlsx')
#function####
get_adj = function(x){
stopifnot(inherits(x,"character"))
index = names(x) %in% c('Ag','a','ad','an','b')
x[index]
}
get_noun = function(x){
stopifnot(inherits(x,"character"))
index = names(x) %in% c("n","nr","nr1","nr2","nrj","nrf","ns","nsf","nt","nz","nl","ng",'x')
x[index]
}
plot_word_cloud <- function(data, key_word, char_len, char_freq){
cc = worker('tag')
key_word_index = which(grepl(pattern = key_word, x = data) == TRUE)
df_keywords = df[key_word_index,]
excerpt_seg_adj = get_adj(cc[df_keywords$excerpt])
adj_freq = freq(excerpt_seg_adj)
adj_filter_len = adj_freq[which(unlist(lapply(adj_freq$char, nchar))>char_len),]
filter_res = adj_filter_len %>% filter(freq > char_freq)
res = wordcloud2(filter_res, fontFamily = "BiauKa")
return(res)
}
但收到以下错误消息和输出。我可以在 Rstudio 中看到我的绘图结果,它可以与我的输入进行交互,但我只是没有出现在我的应用中。
Warning: Error in jiebaclass_tag_tag: CHAR() can only be applied to a 'CHARSXP', not a 'NULL'
177: jiebaclass_tag_tag
176: tagw
175: tagging
174: segment
173: [.segment
168: plot_word_cloud [./gloab.R#31]
167: renderPlot [C:/Users/user/Desktop/實習/工研院/環球瑞士工作/shiny/test.R#51]
165: func
125: drawPlot
111: <reactive:plotObj>
95: drawReactive
82: origRenderFunc
81: output$wc
1: runApp