我正在尝试将R脚本传递给Shiny,整个脚本都是函数。我的目标是在边栏中有无线电波,知道要执行的功能,并在主面板中有一个按钮来初始化功能,正在执行的功能的寿命以及功能的描述。
如果可以显示该功能的说明,但无法执行该功能
new_tweets<-new_tweets[,-ncol(new_tweets)]
combined<-cbind(new_tweets,new_sents)
as.tibble(combined)
MyText favorited favoritedCount Created element_id Sentance_id Word_Count Sentiment ID
<fct> <lgl> <int> <fct> <int> <int> <int> <dbl> <fct>
1 Starbucks TRUE 2 2019-0~ 1 1 2 0.186 1
2 starbucks~ FALSE 2 2019-0~ 2 1 5 0.186 2
3 starbucks~ FALSE 1 2019-0~ 3 1 2 0.186 3
4 Icedstarb~ FALSE 1 2019-0~ 4 1 1 0.186 4
5 Ilovestar~ TRUE 3 2019-0~ 5 1 3 0.186 5
我希望在主面板上显示生命迹象的同时运行一个函数。 到目前为止,我什至没有设法运行该功能 注意:其中一些功能会更改目录并创建文件
答案 0 :(得分:1)
(我将首先在评论中添加此内容,但很遗憾,我现在只能回答。)
我想知道的是几件事:
1)为什么要引入一个给出input $ Index值的函数?只需确保您打算对输入值进行的所有操作都在反应性上下文内即可,即将其包装在observe,observeEvent周围或在呈现输出时访问它。
2)为什么要在开始时更改目录?您只需在源命令中提供Function.R脚本的路径即可。
不确定这是否是您要查找的内容,但是我能够使用以下代码运行这些功能
library(shiny)
source("Functions.R")
ui <- fluidPage(
titlePanel("Calculate PM10"),
sidebarLayout(
sidebarPanel(
radioButtons("Index", h3("Chose the funtion you want to execute"),
choices = list("hello" = 1,
"bye" = 2,
"testing" = 3),
selected = 1)
),
mainPanel(
# Show a description o the function
textOutput("Case")
# button to initialize the funtion
#HERE show the signs of life of FUNCTION
)
)
)
server <- function(input, output) {
output$Case<-renderText({
if (input$Index==1) {
"Description Funtion 1"
} else if (input$Index==2){
"Description Funtion 2"
} else if (input$Index==3){
"Description Funtion 3"
}
})
#HERE I NEED EXECUTE THE FUNCTION
observe({
if (input$Index==1) {
print(hello())
}
if (input$Index==2) {
print(bye())
}
if (input$Index==3) {
print(testing())
}
})
#note: the funtion is a loop an print signs of life, that's what I want to show in the main panel
}
shinyApp(ui = ui, server = server)
带有一个简单的包含Functions.R的脚本
hello <- function() {
"Hello World!"
}
bye <- function() {
"Bye World!"
}
testing <- function() {
"Testing the World!"
}
希望这会有所帮助。