Чтобы немного рассказать о том, что говорит Брэд: многие механизмы транспорта для электронной почты и Usenet и другие способы перемещения данных не являются «8-битными», что означает, что символы вне стандартного набора символов ascii могут быть искажены при транзите - например, 0x0D можно рассматривать как возврат каретки и превращаться в возврат каретки и линию. База 64 отображает все двоичные символы на несколько стандартных символов ascii и цифр и знаков препинания, поэтому они не будут искажены таким образом.
(Я бы поставил это в комментарии первым, но, к сожалению, я могу ответить только на данный момент.)
Итак, несколько вещей, которые меня интересуют:
1) Почему Вы ввели функцию, которая дает входное значение индекса $? Просто убедитесь, что все, что вы намереваетесь сделать с входным значением, находится в реактивном контексте, то есть оберните его вокруг наблюдающего, наблюдающего события или обращайтесь к нему во время рендеринга вывода.
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!"
}
Надеюсь, это поможет.