我正在尝试对Shiny代码进行模块化,以便将CSV文件作为输入上传到scatterD3图中。其他UI控件将来自renderUI来更改x变量和y变量。这只是Mikael Jumppanen的一小部分修改,该答案来自 如何组织大型R Shiny应用程序?,但我一直在努力,无法让这最后一点起作用。
对于此数据集,我使用的是mtcars数据集https://gallery.shinyapps.io/066-upload-file/_w_469e9927/mtcars.csv
## load libraries
library(shiny)
library(stringr)
library(scatterD3)
#source("/Users/echang/scratch/tmp/MSD_D3scatter/csvFile_Module.R")
csvFileInput <- function(id, label="CSV file") {
## Create namespace
ns<-NS(id)
tagList(
uiOutput(ns("controls"))
)
}
csvFileControl <- function(id){
ns <- NS(id)
tagList(
column(width=3, uiOutput(ns("ColName"))),
column(width=3, uiOutput(ns("ColEntry")))
)
}
csvFileUI <- function(id){
ns <- NS(id)
tagList(
uiOutput(ns("csvTable"))
)
}
## server module
csvFile <- function(input, output, session, stringsAsFactors) {
ns <- session$ns
## to reuse namespace, session must be first!!!
## User selected file
userFile <- reactive({
# …
Run Code Online (Sandbox Code Playgroud)