R 如何使用具有链接输出的外部列
我有一个非常简单的闪亮应用程序,你可以在下面运行。它链接了输入,因此当您更改“部门”输入时,“Displayname”将由该部门的人员填充。我需要从数据库中获取所选“DisplayName”的数据。因此,如果选择了部门A&Frank,我需要获取Frank的数据,但我无法将显示名称传递给数据库。幸运的是,我可以传递“NameToPassToDatabase”,但如何访问相应的“NameToPassToDatabase” 在下面的示例中,我没有将名称传递给数据库,而是将其传递给RenderText,并在屏幕上打印 比如说 如果选择部门A&Frank,我想打印“FG” 如果选择部门B和账单,我想打印“BU” 如果选择部门C&TOM,我想打印“TT”R 如何使用具有链接输出的外部列,r,shiny,R,Shiny,我有一个非常简单的闪亮应用程序,你可以在下面运行。它链接了输入,因此当您更改“部门”输入时,“Displayname”将由该部门的人员填充。我需要从数据库中获取所选“DisplayName”的数据。因此,如果选择了部门A&Frank,我需要获取Frank的数据,但我无法将显示名称传递给数据库。幸运的是,我可以传递“NameToPassToDatabase”,但如何访问相应的“NameToPassToDatabase” 在下面的示例中,我没有将名称传递给数据库,而是将其传递给RenderText,
require(闪亮)
数据您只需在部门和名称上建立索引,然后返回NameToPassToDatabase
。注意,我为部门C添加了一个额外的名称,以证明您将返回有关名称和部门的正确代码
datas <- data.frame(Department = c("dept a", "dept b", "dept c", "dept c"),
DisplayName = c("Frank","Bill","Tom","Frank"),
NameToPassToDatabase = c("FG","BU","TT","FC"))
runApp(list(
ui = basicPage(
sidebarPanel(
selectInput("Department", "Select a department",
choices = levels(datas$Department),
selected = levels(datas$Department)[1]),
uiOutput("DisplayName")
),
mainPanel(textOutput("Text") )
),
server = function(input, output, session) {
output$DisplayName<-renderUI({
Department <- input$Department
print(Department)
selectInput("DisplayName", 'DisplayName:',
choices = as.character(datas$DisplayName[datas$Department == Department]),
selected = as.character(datas$DisplayName[datas$Department == Department][1]))
})
output$Text <- renderText({
print("in render text")
nameToDB <- as.character(
datas[datas$DisplayName == input$DisplayName &
datas$Department == input$Department,3])
return(nameToDB)
})
}
))
datas我的答案解决了你的问题还是你在寻找别的?
datas <- data.frame(Department = c("dept a", "dept b", "dept c", "dept c"),
DisplayName = c("Frank","Bill","Tom","Frank"),
NameToPassToDatabase = c("FG","BU","TT","FC"))
runApp(list(
ui = basicPage(
sidebarPanel(
selectInput("Department", "Select a department",
choices = levels(datas$Department),
selected = levels(datas$Department)[1]),
uiOutput("DisplayName")
),
mainPanel(textOutput("Text") )
),
server = function(input, output, session) {
output$DisplayName<-renderUI({
Department <- input$Department
print(Department)
selectInput("DisplayName", 'DisplayName:',
choices = as.character(datas$DisplayName[datas$Department == Department]),
selected = as.character(datas$DisplayName[datas$Department == Department][1]))
})
output$Text <- renderText({
print("in render text")
nameToDB <- as.character(
datas[datas$DisplayName == input$DisplayName &
datas$Department == input$Department,3])
return(nameToDB)
})
}
))