Shiny 在闪亮的应用程序中显示数据帧的子集

Shiny 在闪亮的应用程序中显示数据帧的子集,shiny,Shiny,对于Shiny来说,我是个新手,我正在尝试创建一个非常简单的应用程序,涉及以下事件序列: (1) 上传一个数据帧 (2) 等待用户设置过滤参数(Category,在下面的示例中) (3) 按aGo按钮 (4) 显示子集数据框的第一行 假设我有一个文件df.tab要上传和处理 df <- data.frame(Category=c("A","A","A","B","B","B"), X=c(1,2,3,1,2,3), Y=c(1,2,3,34,21,1)) df Category X

对于Shiny来说,我是个新手,我正在尝试创建一个非常简单的应用程序,涉及以下事件序列:

(1) 上传一个数据帧

(2) 等待用户设置过滤参数(
Category
,在下面的示例中)

(3) 按a
Go按钮

(4) 显示子集数据框的第一行

假设我有一个文件
df.tab
要上传和处理

df <- data.frame(Category=c("A","A","A","B","B","B"), X=c(1,2,3,1,2,3), Y=c(1,2,3,34,21,1))
df
  Category X  Y
1        A 1  1
2        A 2  2
3        A 3  3
4        B 1 34
5        B 2 21
6        B 3  1
write.table(df, file="df.tab", row.names=F, quote=F, sep="\t")
但是,该应用程序要么没有响应,要么不显示任何行

请注意,我创建了两个不同的反应事件
data
data\u sub
,以避免每次选择不同类别时加载文件(并可能避免递归函数的堆栈错误)


任何帮助都将不胜感激。

这里是一个工作的
服务器
功能。使用
reactive
,而不是
eventReactive
,这非常简单

请注意,您的示例假设您有一个Category列,我在下面对其进行了修改,使其可以处理任何内容

# Define server logic ----
server <- function(input, output) {

  dataset <- reactive({

      File <- input$input_df
      req(File)

      read.table(File$datapath, header = TRUE, sep = "\t")
  })

  data_sub <- reactive({
    if("Category" %in% names(dataset())){
      subset(dataset(), Category == input$category)
    } else {
      dataset()
    }
  })

  output$view <- renderTable({
      head(data_sub())
  })
}
#定义服务器逻辑----

服务器这里有一个工作的
服务器
功能。使用
reactive
,而不是
eventReactive
,这非常简单

请注意,您的示例假设您有一个Category列,我在下面对其进行了修改,使其可以处理任何内容

# Define server logic ----
server <- function(input, output) {

  dataset <- reactive({

      File <- input$input_df
      req(File)

      read.table(File$datapath, header = TRUE, sep = "\t")
  })

  data_sub <- reactive({
    if("Category" %in% names(dataset())){
      subset(dataset(), Category == input$category)
    } else {
      dataset()
    }
  })

  output$view <- renderTable({
      head(data_sub())
  })
}
#定义服务器逻辑----

谢谢你的建议。但是,还是一样的问题:没有显示任何内容。它工作正常-我只是忘记了一个额外的
-请尝试已编辑的服务器功能我看到缺少的
。很抱歉,仍然不起作用。只显示标题。我正在运行
Shining_1.4.0
。它在这里确实起作用。您是否尝试选择了一些没有类别列的文件?然后是标题()所有数据中的一个都应该显示感谢您的建议。但是,仍然存在相同的问题:没有显示任何内容。它工作正常-我只是忘记了一个额外的
)-请尝试编辑的服务器功能我看到缺少的
。很抱歉,仍然不起作用。只显示标题。我正在运行
Shining_1.4.0
。它在这里确实起作用。您是否尝试选择了一些没有类别列的文件?然后应该显示所有数据的标题()