library(闪亮)
SET种子(1234)
x<-sample.int(n=20)
Y<-样本(X=字母,大小=20)
a<-rnorm(n=20)
B<-样本(X=字母,大小=20)
df1<-data.frame(x=x,y=y)
df2<-data.frame(A=A,B=B)
mydataframes<-名称(unlist(eapply(.globalenv,is.data.frame)))
opendata<-data()$结果[,3]
定义UI
ui<-流体页面(
标题面板(“使用文本输入选择数据帧”),
侧边栏布局(position=“left”,
侧边栏面板(宽度=5,
selectinput(“dfinput”,“选择数据帧”,
#选择=mydataframes,
list(“您的数据集”=c(mydataframes),
“R数据集”=C(OpenData),
selected=null)),
主面板(宽度=6,
h4(“这是您的数据”),
textOutput(“选定的_-df”),
数据表输出(“视图”)
)
)
)
#定义服务器逻辑----
服务器功能(输入、输出、会话){
输出$selected-renderText({
粘贴(“您已选择”,输入$dfinput)
})
输出$view<。-
可渲染({
as.data.frame(get(input$dfinput))这将呈现选定的数据帧。如果用mtcars替换此数据集,则会正确呈现该数据集。
})
}
#运行应用程序----
Shinyapp(用户界面=用户界面,服务器=服务器)
< /代码>

到selectInput所以你不需要输入任何东西,可能会出错。此外,我还添加了datasets但是,您应该构建更多的测试用例来检查数据是否存在
library(shiny)
set.seed(1234)
x <- sample.int(n = 20)
y <- sample(x = LETTERS, size = 20)
a <- rnorm(n = 20)
b <- sample(x = letters, size = 20)
df1 <- data.frame(x = x, y = y)
df2 <- data.frame(a = a, b = b)
mydataframes <- names(which(unlist(eapply(.GlobalEnv,is.data.frame))))
OpenData <- data()$results[,3]
#Define UI ----
ui <- fluidPage(
titlePanel("Using text inputs to select dataframes"),
sidebarLayout(position = "left",
sidebarPanel(width = 5,
selectInput("dfInput","Select Dataframe",
#choices = mydataframes,
list("Your Datasets" = c(mydataframes),
"R Datasets" = c(OpenData),
selected=NULL))),
mainPanel(width = 6,
h4("Here's your data"),
textOutput("selected_df"),
dataTableOutput("view")
)
)
)
# Define server logic ----
server <- function(input, output, session) {
output$selected_df <- renderText({
paste("You have selected ", input$dfInput)
})
output$view <-
renderDataTable({
as.data.frame(get(input$dfInput)) # this should render the selected dataframe. If you replace this with mtcars then that dataset is correctly rendered.
})
}
# Run the app ----
shinyApp(ui = ui, server = server)
