首页 > 解决方案 > 如何从我的数据框在 R 闪亮上带来正确的结果?

问题描述

我想在我闪亮的应用程序上有一个正常工作的搜索按钮,它从我的数据框(table1)中获取数据。这是我的数据框;

table1 = data_frame = ( 
Ciliopathy = c("Acrocallosal Syndrome" ,"Alström Syndrome" , "Ataxia- 
telangiectasia-like Disorder" ,"Ataxia-telangiectasia-like Disorder" , 
"Autosomal Dominant Polycystic Kidney Disease (ADPK)" ,"Autosomal 
Dominant Polycystic Kidney Disease (ADPK)" , "Autosomal Dominant 
Polycystic Kidney Disease (ADPK)", "Autosomal Dominant Polycystic Kidney 
Disease (ADPK)","Autosomal Dominant Polycystic Kidney Disease (ADPK)"),

OMIM.Phenotype.Number = 
c(200990,203800,604391,615919,173900,613095,613095,600666,600666),

Human.Gene.Name = 
c("KIF7","ALMS1","MRE11","PCNA","PKD1","PKD2","PKD2","GANAB","GANAB"))

但是当我搜索一个特定的词时,它不会带来想要的结果。我认为有问题的部分就在这里;

generow = reactive({

table1 %>% filter (Human.Gene.Name == "a" )

})  

output$tablom <- renderTable({ 

generow()

})

但我仍然不知道如何解决,这是我的完整代码;

 ui <- fluidPage(
tags$h1("Search Input"),
br(),
searchInput(
  inputId = "a", label = "Enter your text",
  placeholder = "A placeholder",
  btnSearch = icon("search"),
  btnReset = icon("remove"),
  width = "450px"
),
br(),
(outputId = "tablom"), tableOutput("tablom")
)

server <- function(input, output, session) {

generow = reactive({

 table1 %>% filter (Human.Gene.Name == "a" )

  })  

output$tablom <- renderTable({ 
  
  generow()

  })
 }

shinyApp(ui = ui, server = server) 

我需要你的建议

标签: rdataframewebsearchshiny

解决方案


就像我在您的示例数据中看到的那样,您的“人类基因名称”始终是一个全名。您只过滤一个字母:

table1 %>% filter (Human.Gene.Name == "a" )

如果你想过滤所有基因,包括一个“a”你需要另一个函数

 grepl("a", table1$Human Gene Name)

此外,您的行名为“人类基因名称”,但您在代码中使用 Human.Gene.Name。


推荐阅读