R 上载到Shiny并将其分配给环境以供进一步使用
我试图创建一个闪亮的仪表板,用户可以上传数据集,命名它们,然后从下拉菜单中选择一个数据集 我不完全理解用户如何上传、保存和进一步访问数据。我尝试使用assign,但数据集没有显示在ls下。我的尝试: 使用assign可能很困难,因为通过命名空间的搜索路径可能很难预测。更好的解决方案是将数据集存储在反应值列表中,并从那里访问它们。可以根据存储在“反应值”列表中的数据集的名称动态呈现数据集选择器UI 如果互动{ 用户界面R 上载到Shiny并将其分配给环境以供进一步使用,r,shiny,R,Shiny,我试图创建一个闪亮的仪表板,用户可以上传数据集,命名它们,然后从下拉菜单中选择一个数据集 我不完全理解用户如何上传、保存和进一步访问数据。我尝试使用assign,但数据集没有显示在ls下。我的尝试: 使用assign可能很困难,因为通过命名空间的搜索路径可能很难预测。更好的解决方案是将数据集存储在反应值列表中,并从那里访问它们。可以根据存储在“反应值”列表中的数据集的名称动态呈现数据集选择器UI 如果互动{ 用户界面 library(data.table) library(shinyWidget
library(data.table)
library(shinyWidgets)
library(shinydashboard)
if (interactive()) {
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
fileInput("file1", "Choose CSV File",
accept = c(
"text/csv",
"text/comma-separated-values,text/plain",
".csv")
),
actionButton('show_ls', 'show_ls'),
# Name data
textInput('name_data', 'Store data as' , value = ''),
# Action button to upload
actionButton('upload_data', 'Upload and save data')
),
mainPanel(
tableOutput('ls')
# textOutput('ls'))
)
)
)
server <- function(input, output, session) {
# This part uploads one row from the file, so the user can selects columns and choose name of the file
data <- reactive({
file1 <- input$file1
if(is.null(file1)){return()}
data_input <- fread(file=file1$datapath, sep=",")
updateTextInput(
session,
'name_data',
value = file1$name
)
return(data_input)
})
#### ASSIGNING THE DATA
assign_data <- eventReactive(input$upload_data, {
assign(input$name_data, data(), envir = .GlobalEnv)
})
assign_the_data <- reactive(assign_data())
output$contents <- renderTable({
if(is.null(data())) return(NULL)
data()
})
outputOptions(output, 'contents', suspendWhenHidden = FALSE)
show_ls <- eventReactive(input$show_ls, {data.frame(a = ls(.GlobalEnv))})
output$ls <- renderTable({
show_ls()
})
}
shinyApp(ui, server)
}