У меня есть R-скрипт, для которого мне нужно разработать и установить интерфейс пользователя в пакете shiny
в R.Невозможно разобраться, как создать и запустить определенную пользователем функцию R в Shiny с текстовыми полями ввода
Моя следующая является частью R кода, который я пытаюсь построить интерфейс вокруг:
# A random normal function to generate numbers with exact mean and SD
rnorm2 <- function(n,mean,sd) { mean+sd*scale(rnorm(n)) }
age <- rnorm2(n = 10000, mean = 55 , sd = 15)
cholestrol <- rnorm2(n = 10000, mean = 200 , sd = 30)
bp <- rnorm2(n = 10000, mean = 90 , sd = 25)
df <- cbind(age, cholestrol,bp)
Org_Data <- as.data.frame(df)
Как есть 9 входов (3 каждый для age
, cholestrol
и bp
) я создал 9 полей ввода в котором пользователь вводит вход, а затем нажатием кнопки Я хочу запустить rnorm2
который я создал.
Мой блестящий код приложения выглядит следующим образом:
ui.R:
library(shiny)
shinyUI(pageWithSidebar(
headerPanel("function1"),
sidebarPanel(
#Age input
textInput(inputId = "n1",
label = h4("Enter n for Age:"),
value = ""),
textInput(inputId = "mean1",
label = h4("Enter mean for Age:"),
value = ""),
textInput(inputId = "sd1",
label = h4("Enter sd for Age:"),
value = ""),
#Cholestrol input
textInput(inputId = "n1",
label = h4("Enter n for Cholestrol:"),
value = ""),
textInput(inputId = "mean1",
label = h4("Enter mean for Cholestrol:"),
value = ""),
textInput(inputId = "sd1",
label = h4("Enter sd for Cholestrol:"),
value = ""),
#Blood Pressure input
textInput(inputId = "n1",
label = h4("Enter n for Blood Pressure:"),
value = ""),
textInput(inputId = "mean1",
label = h4("Enter mean for Blood Pressure:"),
value = ""),
textInput(inputId = "sd1",
label = h4("Enter sd for Blood Pressure:"),
value = ""),
actionButton(inputId = "input_action", label = "Show Inputs")),
mainPanel(
h2("Input Elements"), # title with HTML helper
textOutput("td"))
))
Но я совершенно беспомощен выяснить, как поставить R-код, я уже упоминал в начале в server.R
файл. Могу ли я начать с простого определения функции? А затем, как запустить эту функцию на тех входах, взятых у пользователя, а затем сохранить вывод в каждой из этих переменных: age
, cholestrol
и bp
???
server.R:
library(shiny)
#defining a function
rnorm2 <- function(n,mean,sd) { mean+sd*scale(rnorm(n)) }
shinyServer(function(input, output){
#Don't know how run the function and save the output into the variables
age <-
cholestrol <-
bp <-
})
})
Это мой первый день с блестящими и все образцы server.R кода в Интернете являются своего рода собираются над моей головой. Но мне действительно нужно это сделать сегодня. Пожалуйста помоги!!!
Вау .. это было красиво .. Большое спасибо! – LearneR
Кроме того, я попытался объединить все три переменные под одной dataframe: full_df <- eventReactive (вход $ input_action, { data.frame (age_r, chol_r, bp_r) }) выход $ full_df_r <- renderDataTable ({ full_df() }) Но это не было распознавание 'age_r', я не могу использовать этот age_r из' output $ age_r' в качестве вектора 'age_r' ?? – LearneR
Есть ли способ объединить все эти 3 переменные 'age',' cholestrol' и 'bp' в один фрейм данных на сервере.R ?? Как это сделать? – LearneR