gpt4 book ai didi

r - R Shiny中链接的SelectInput控件-可以吗?

转载 作者:行者123 更新时间:2023-12-04 12:35:36 26 4
gpt4 key购买 nike

是否可以在R Shiny中链接选择输入控件。我目前有一个下拉菜单,用于显示目录中的文件夹。我想要第二个下拉菜单以显示所选文件夹中的文件。可能吗?

这是ui.R:

shinyUI(pageWithSidebar(

sidebarPanel(
selectInput("Folder", "Folder:" , as.matrix(getFolders()),multiple = TRUE)
selectInput("FileInFolder", "File in folder:" ) # can this dropdown be linked to one above???
),
mainPanel(
))#end main
)

这是服务器
shinyServer(function(input, output) {}) 

这是运行它的代码:
library(shiny)
runApp("C:/Users/me/Desktop/R Projects/FileFolder")

这是填充文件夹的我的global.R文件:
getFolders<-function()
{
folders<-list.dirs("//nas/mypath/",full.names= FALSE,recursive = FALSE)
folders
}

这里很有趣##我如何将他链接到getFolders,以便UI级联?
getFilesInFolder<-function(Folder)
{
files<-list.files(paste("//nas/mypath/",Folder,sep=""))
files
}

任何想法如何使这项工作,以便用户界面是级联的。那就是当您从文件夹下拉列表中选择一个文件夹时,“文件下拉列表”已更新吗?

谢谢你。

最佳答案

看一下updateSelectInput函数。

这是一个例子:

require(shiny)

datas <- data.frame(directory = c("a", "a", "a", "b", "b", "c"), file = sprintf("file%d", 1:6))

runApp(list(
ui = basicPage(
sidebarPanel(
selectInput("directory", "Select a directory", choices = levels(datas$directory), selected = levels(datas$directory)[1]),
tags$hr(),
selectInput("files", "Select files", choices = datas$file[datas$directory == levels(datas$directory)[1]], multiple = TRUE)
)
),
server = function(input, output, session) {

observe({
directory <- input$directory

updateSelectInput(session, "files", choices = datas$file[datas$directory == directory])
})
}
))

关于r - R Shiny中链接的SelectInput控件-可以吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22769940/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com