Shiny 中的多个下拉底部作为数据过滤器

2023-12-08

我想在 Shiny 中应用多个下拉底部作为数据过滤器。我找到了下面的例子。本例中加载固定数据,即mpg from ggplot2。但我想首先动态读取输入文件,然后将下拉选项应用为过滤器。因此我更改了代码:

GUI:

  fluidPage(
      titlePanel("Ausfallsbericht"),


      # Sidebar layout with input and output definitions ----
      sidebarLayout(

        # Sidebar panel for inputs ----
        sidebarPanel(
          fluidRow(
        #find all the files in ths path
            column(12,
                   selectInput(inputId = 'date',
                               label = 'Choose a date:',
                               choices = list.files(path = "C:/R_myfirstT/data",
                                                    full.names = FALSE,
                                                    recursive = FALSE)),
                   ###
               selectInput("konz",
                           "Konzernbe:",
                           c("All",
                             unique(as.character(datT2$Konzernbe )))),

               selectInput("lgdK",
                           "LGD:",
                           c("All",
                             unique(as.character(datT2$LGD.Klasse)))),

               selectInput("group",
                           "Best:",
                           c("All",
                             unique(datT2$Best)))
         )
          )
      ),
    #  Create a new row for the table.
      fluidRow(
        DT::dataTableOutput("table")
      )

      )
    )

and Server:

function(input, output) {

  #read the data
  dataset <- reactive({
    infile <- input$date
    if (is.null(infile)){
      return(NULL)
    }
    read.table(paste0('O:/R/data/',infile),header=TRUE, sep=";")
  })
  data<- dataset
  datT2<-dataset
  # Filter data based on selections
  output$table <- DT::renderDataTable(DT::datatable({
    #data <- datT2
    if (input$konz != "All") {
      data <- data[data$Konzernbe == input$konz,]
    }
    if (input$group != "All") {
      data <- data[data$Best == input$group,]
    }
    if (input$lgdK != "All") {
      data <- data[data$LGD.Klasse == input$lgdK,]
    }
    x <- data()$Marktwert
    hist(x, breaks = 40)

    #data
    }))
 }

但是,我收到以下消息:

Warning: Error in DT::datatable: 'data' must be 2-dimensional

并且没有直方图。

下一个问题是,如何获得直方图而不是表格?我的代码部分

 x <- data()$Marktv
  hist(x, breaks = 40)

剂量也不起作用。这意味着我既没有收到直方图也没有收到错误消息!

示例数据集如下所示:

Konzernbe  Best  LGD.Klasse  Marktwert   EL absolut 
6010    3   3   1142345261  1428757
6010    3   3   849738658   1028973
6010    1   3   1680222820  220554
6010    1   3   896459567   116673
6010    0   3   1126673222  72077
6010    1   3   704226037   93310
--      1   4   336164879   49299
6010    0   3   948607746   60443
6070    1   3   265014117   34170
6020    3   3   47661945    58551
6050    2   3   307011781   115959
6020    0   1   1064022992  20320
6010    0   3   831782040   52950
6080    3   3   19367641    20286
--      2   4   197857365   87608
6010    1   3   679828856   90884
6050    3   3   317092037   372362
6080    3   3   20223616    21929
6010    1   3   693736624   96899
6050    3   3   308447822   372915
6010    4   3   177281455   862068

Addendum: 我意识到了这个问题。问题是,dataset是空的,如果我将上面的代码更改为:

  infile <- input$date
    if (is.null(infile)){
      return(NULL)
    }
   dataset <- read.table(paste0('O:/R/data/',infile),header=TRUE, sep=";")

我收到以下错误:

 Warning: Error in .getReactiveEnvironment()$currentContext: Operation not
 allowed without an active reactive context. (You tried to do something that can 
 only be done from inside a reactive expression or observer.)

Update:我对代码做了一些更改,但我认为data仍然是空的。

function(input, output) {

  #read the data 
  dataset <- reactive({
    infile <- input$date
    if (is.null(infile)){
      return(NULL)
    }
    dataset <- read.table(paste0('O:/R/data/'),header=TRUE, sep=";")
    data<- dataset() #datT2#dataset
    # Filter data based on selections
  output$table <- DT::renderDataTable(DT::datatable({
    #data <- datT2
    if (input$konz != "All") {
      data <- data[data$Konzernbe == input$konz,]
    }
    if (input$group != "All") {
      data <- data[data$Best == input$group,]
    }
    if (input$lgdK != "All") {
      data <- data[data$LGD.Klasse == input$lgdK,]
    }
    #x <- data()$Marktwert
    #hist(x, breaks = 40)

    })) 

  })
  output$plot <- renderPlot({
      x <- data()$Marktwert
      hist(x, breaks = 40)
  })
 }

and in GUI我更换了

#  Create a new row for the table.
      fluidRow(
        DT::dataTableOutput("table")
      )

through

# Main panel for displaying outputs ----
mainPanel(
  plotOutput("plot")
)

但是,我得到下面的图片

enter image description here


我认为问题出在服务器上。尝试这个

function(input, output) {

  #read the data 
  dataset <- reactive({
  infile <- input$date
  if (is.null(infile)){
    return(NULL)
  }
  data<-read.table(paste0('---/data/',infile),header=TRUE, sep=";")
  data[is.na(data)]<- 0

  if (input$konz != "All") {
   data <- data[data$Konzernbezeichnung == input$konz,]
  }
  if (input$group != "All") {
   data <- data[data$Bestandseingruppierung == input$group,]
  }
  if (input$lgdK != "All") {
   data <- data[data$LGD.Klasse == input$lgdK,]
  }
  })

  # Filter data based on selections
  output$plot <- renderPlot({

   x <- dataset()$Marktwert
   hist(x, breaks = 40)

  })

 }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Shiny 中的多个下拉底部作为数据过滤器 的相关文章

  • 在 R 的替换命令中取消引用字符串

    我想知道是否可以unquote通过替换命令传递给表达式的字符串 具体来说 我使用 dplyr 从数据框中过滤和选择 gt w subject sex response 1 1 M 19 08 2 2 M 16 46 6 6 M 23 60
  • Shiny:从DT数据表中选定的行获取信息

    我们正在尝试重新创建示例 https demo shinyapps io 029 row selection https demo shinyapps io 029 row selection 使用DT包来渲染数据帧而不是shiny包 DT
  • R,igraph,是否可以用图案填充顶点

    使用 R 和 igraph 绘制图形 我使用颜色来标记顶点类型 请参阅下面的代码 是否可以用图案而不是颜色填充顶点 以便在以彩色和黑白查看时可以区分节点类型 我需要 4 种独特的颜色 图案 colorbrewer 中唯一适合的调色板是这个
  • 在ggplot2中,箱线图线的末尾代表什么?

    我找不到箱线图线条端点代表什么的描述 For example here are point values above and below where the lines end 我意识到盒子的顶部和底部是第 25 个和第 75 个百分位数
  • 使用 R 下载压缩数据文件、提取并导入 .csv

    我正在尝试使用以下方法从网页下载并提取 csv 文件R 这个问题是重复的使用 R 下载压缩数据文件 提取和导入数据 https stackoverflow com questions 3053833 using r to download
  • R 无法回忆起内存中的对象

    我正在构建一个包含多个步骤的函数 其中每个步骤都会创建一个对象 某个步骤失败 temp3 并且无法找到前面的步骤对象 错误 未找到对象 temp2 我不知道为什么 我有类似的函数 遵循完全相同的结构 每个步骤都遵循先前创建的对象 在函数内
  • R 获取子字符串和正则表达式?

    我有一组文件名字符串 我想提取 符号之后但文件扩展名之前的所有字符 例如 文件名之一是 HelloWorld you txt 我想返回字符串you 这是我的代码 hashPos grep name fixed TRUE dotPos len
  • 在列标题和配对变量中嵌入数据的数据透视表

    假设我有这样的数据 不幸的是 变量值嵌入在列名称中 library tidyr library dplyr dat lt tribble group var1 var meta1 var2 var meta2 group1 5 2 cat
  • 如何使用 Facet R 添加线条[重复]

    这个问题在这里已经有答案了 所以我有一个多面图 我希望能够向其中添加随每个面而变化的线 这是代码 p lt ggplot mtcars aes x wt geom histogram bins 20 aes fill factor cyl
  • SparkR 和 Sparklyr 之间导入 parquet 文件所需的时间差异

    我正在使用 databricks 导入镶木地板文件SparkR and sparklyr data1 SparkR read df dbfs data202007 source parquet header TRUE inferSchema
  • ODE 时间 Matlab 与 R

    如果在 matlab 中使用可变时间步长求解器 例如 ODE45 我会定义输出的时间跨度 即times 0 50 matlab 将返回 0 到 50 之间不同时间步长的结果 然而在 R 中 我似乎必须定义我希望 ODE 返回结果的时间点 即
  • R xts 对象中从每日时间序列到每周时间序列

    我正在使用 Zoo 和 xts 包来分析财务数据 ts 包不太合适 因为金融系列有周末 没有可用数据 我读到了 xts 包中可用的 apply 函数 apply daily x FUN apply weekly x FUN apply mo
  • e_facet 在 echarts4r 问题中使用分组数据

    我真的很喜欢这个包提供的可能性 并且想在一个闪亮的应用程序中使用它 然而我正在努力重新创建从 ggplot 到 echarts4r 的情节 library tidyverse library echarts4r data tibble ti
  • 关于在 LyX 中生成和交叉引用 knitr 图的意见

    我的目标是在 LyX 中包含一个knitr图 我可以在我的文档中交叉引用 我 插入了浮动图像 添加了标题和标签 在浮动图像中插入了 ERT 而不是图像 我所做的图片如下 我在这里检查过类似的问题 但没有人做我所做的事情 所以我在这里问 有没
  • 按新年拆分日期行

    我有来自一家医院的包含许多变量的数据 以及每行的起始日期和截止日期 这告诉我们每行何时 有效 每行的有效期最长为一年 test data frame ID c 10 10 10 12 12 Disease c P P P D P Pass
  • 是否可以创建根据输入对象名称自行命名的列表?

    能够创建 R 列表对象而无需指定每个元素的名称对我来说非常有帮助 例如 a1 lt 1 a2 lt 20 a3 lt 1 20 b lt list a1 a2 a3 inherit name TRUE gt b a1 1 1 a2 1 20
  • 更快地评估从右到左的矩阵乘法

    我注意到以二次形式评估矩阵运算右到左明显快于左到右在 R 中 取决于括号的放置方式 显然它们都执行相同的计算量 我想知道为什么会这样 这与内存分配有什么关系吗 A 5000 5000 B 5000 2 A matrix runif 5000
  • R中的for循环和if函数

    我正在用 R 中的 if 函数编写一个循环 表格如下 ID category 1 a 1 b 1 c 2 a 2 b 3 a 3 b 4 a 5 a 我想使用 for 循环和 if 函数添加另一列来计算每个分组的 ID 如下所示的计数列 I
  • 从拟合的 lm 或 glm [R] 获取每个因子水平(以及交互作用)的数据数量

    我在 R 中有一个逻辑回归模型 其中所有预测变量都是分类变量而不是连续变量 除了响应变量 它显然也是分类 二元变量 打电话时summary model name 有没有办法在每个因子水平中包含一个表示观测值数量的列 我在 R 中有一个逻辑回
  • 在并行包中的 R 的 par*apply 函数内部使用 Rcpp 函数

    我试图了解背后发生的事情Rcpp sourceCpp 调用并行环境 最近 问题中部分解决了这个问题 在 Windows 上使用 parLapply 中的 Rcpp 函数 https stackoverflow com questions 2

随机推荐

  • 如何在grails中为createCriteria编写from和to日期的子句?

    我想使用以下代码获取两个日期之间的结果 def c TestCase createCriteria resultss c list like testStatus Dummy and between testTime date1 date2
  • 沿任一轴翻转 UIImage

    我正在尝试创建一种沿 X 轴 Y 轴或两者翻转 UIImage 的方法 我一直在接近 但我的变换知识还不够好 无法一路到达那里 这是我到目前为止的代码 UIImage flippedImageByAxis MVImageFlip axis
  • 如何将 OpenCV C++ 代码中的帧流式传输到 Video4Linux 或 ffmpeg?

    我正在尝试使用 OpenCV 处理视频流中的帧 目标是从流中获取帧 对其进行处理 然后将处理后的帧放入新的 新鲜的流中 我已经能够使用 OpenCV 视频捕获功能成功读取流 但不知道如何使用处理后的帧创建输出流 为了进行一些基本测试 我使用
  • SCNNode子节点的总高度

    我目前正在使用以下方法来获取 a 中所有子节点的总高度SCNNode 有没有更有效 更好 更短 更快速的方法来做到这一点 CGFloat columnNode childNodes reduce CGFloat let geometry 1
  • 如何在 pygame 中绘制更详细/更平滑的图像?

    我一直在尝试进入矢量风格的艺术世界 最近我尝试使用 blit 方法对矢量图像进行位图传输 但是当我进行位图传输时 它会显示为像素化 这是图像 这是它在 pygame 中的样子 代码为 import pygame screen pygame
  • MIPS 汇编中的奇怪跳跃

    我可能在这里遗漏了一些非常明显的东西 但我已经一遍又一遍地讨论这个问题 而且我肯定被困住了 在下面的代码中 8仅当以下情况时才会递增 2 0 现在我仔细检查了两次和三次beq指令有效 例如 如果我将 lop 更改为 end2 它就会转到那里
  • Angular 2:引导之前的外部配置 - 将值传递给 AppModule

    我想从外部 json 文件配置我的 Angular 2 应用程序 In my main ts我加载配置 json getHttp get config json map response gt response json subscribe
  • 如何使行的值在两列中唯一?

    假设我有两列 A 列和 B 列 A 列是必需的 B 列是可选的 如果指定了 B 列 我想确保在其自身行之外的 B 列 简单 或 A 列 似乎更难 中找不到它的值 同样 如果 A 列发生更改 我想确保在其所在行之外的 B 列或 A 列中找不到
  • Vue Router 在启动时加载我所有的延迟加载组件

    我有一个 Vue vue 2 6 和 cli service 4 1 应用程序 其延迟加载路由器配置如下 路由器 ts const Grid gt import webpackChunkName grid views grid Grid v
  • 为什么我不能 .call() Function.call?

    在 JavaScript 中 Function call 可以打电话Function给定一个this值和零个或多个参数 Function call本身就是一个函数 所以理论上来说 Function call应该是相同 或类似作用 的功能Fu
  • 在oracle中垂直显示结果

    我很喜欢 mysql 的 G 功能 我发现它在从具有许多列的表中进行选择时非常有用 oracle中是否有类似的功能 可以将每一列显示在自己的行上 人们通常如何处理这个问题 I use Tom Kyte 的 print table 过程 例如
  • 如何访问Scrapy项目管道中的所有已抓取项目?

    我有一个项目有一个排名字段 必须通过分析其他项目类来构建 我不想使用数据库或其他后端来存储它们 我只需要访问所有当前抓取的项目并对它们执行一些 itertools 魔法 我如何在蜘蛛完成后但在导出数据之前执行此操作 因此排名字段获胜不要为空
  • 如何更改实体框架使用的数据库 - 架构(mysql 数据库)?

    我在项目中使用EntityFramework连接Mysql数据库 提供商是 Devart Dot connect 该应用程序需要使用用户在运行时给出的连接参数连接到数据库 这当然包括 Mysql 数据库名称 我使用 EntityConnec
  • Laravel 查询获取至少包含一个数组元素的结果?

    I have posts and postWriters具有一对多关系的表 我也有writers table 每篇文章都是由几位作者合作撰写的 我想要获得至少由我关注的一位作家撰写的前 20 篇帖子 例如我关注的作家 arrayOfWrit
  • 可以在非 root 内核上使用 RenderScript 的 rsForEach 吗?

    可以使用以下命令调用非根 RenderScript 内核吗rsForEach 有很多使用的例子rsForEach从可调用的 RenderScript 函数中调用根内核 Android Renderscript 高级 rsForEach 调用
  • 12,345,678,900 等字符串的正则表达式模式?

    从标题中可以看出 我想编写一个正则表达式模式来查找由各种数字组成且每三位数字以逗号分隔的字符串 字符串的长度可以变化 我对正则表达式还很陌生 所以有人可以帮助我吗 预先非常感谢 附 任何人都可以推荐一些学习正则表达式的好资源 例如网站 书籍
  • Android 中异步更新 UI

    我有一个 Web 服务调用 每 10 秒调用一次 并且应该使用 Web 服务回复更新 TextView 或至少每 10 秒显示一条 toast 消息 但用户界面根本没有更新 请找到下面的代码 public class MessagesReq
  • 如何从单个数据框中创建多个具有不同内容的 PDF?

    Problem 我想从一个数据框中编织多个 PDF 因此我尝试了各种解决方案 但我对 R R Studio LaTex knitr 的了解非常有限 所以我无法适应一些解决方案方法 最后自己尝试了 我实际上认为我的代码绝对不是你实际用来实现我
  • Google Analytics for Shiny 仪表板应用程序

    我有一个整理良好的 R闪亮 shinydashboard 应用程序 在服务器上运行 我希望能够跟踪它的使用情况 并知道谷歌分析是一个很好的解决方案 但我在设置它时遇到了问题 我尝试按照此处描述的说明进行操作https shiny rstud
  • Shiny 中的多个下拉底部作为数据过滤器

    我想在 Shiny 中应用多个下拉底部作为数据过滤器 我找到了下面的例子 本例中加载固定数据 即mpg from ggplot2 但我想首先动态读取输入文件 然后将下拉选项应用为过滤器 因此我更改了代码 GUI fluidPage titl