闪亮的小部件或包可以轻松直观地修改向量中的元素和元素顺序?

Shiny widgets or packages to easily and visually modify the elements and order of elements in a vector?

有哪些选项可以方便地(最好是直观地)修改(添加、删除、重新排序)向量中的元素?

解释:

在我正在构建的应用程序中,数字输入 X 需要按照指定的优先顺序进行分配。这个优先级序列和相关数据将存储在向量或类似对象中。优先级示例:

  1. X 的 100% 用于支付 A 所需的计算量(称之为 "class A"),
  2. 覆盖 class A (X-A) 后剩余的任何 X 的 100% 将覆盖 class B 所需的计算量,
  3. 覆盖 A 和 B (X-A-B) 后剩余的任何 X 的 100% 用于覆盖任何过去 class B 的不足,
  4. 覆盖后剩余的任何 X 的 100% 前面的 (X-A-B-B) 在计算的金额之间按 50/50 分配 class分别是C1和C2
  5. 覆盖所有前面的(X-A-B-(C1 和 C2))后剩余的任何 X 的 100% 都累积在 D 中。

用户将指定 classes (A/B/C...),引入标签,指定百分比,并且需要能够随后修改这些排序。引入的 classes 的数量在理论上应该没有限制(但实际上通常会有 4 到 12 个)。

是否有 R/Shiny 功能或程序包允许用户在视觉上进行这种排序、这种优先级排序?或者某种导致数字优先级的流程图?或者有些接近或相似的东西?

理想情况下,用户在调用应用程序时只会看到一个方框“A”(基本上默认情况下假设上面第 5 项中 Class D 描述的残差累积函数)。按照上面的优先级示例:用户将右键单击 A 框并将其拆分为框 A 和 B,A 位于 B 上方以显示优先级顺序。用户在 A 和 B 中输入标签及其各自的分配百分比。然后用户单击 B 并在其下方插入 C。用户右键单击 C 并选择将其拆分为 C1 和 C2 两个组件的选项。等等。基本上你最终会得到一个流程图或类似流程图的东西,其中框的位置 flowchart/similar 告诉代码如何分配 X 流(可以说是“瀑布”)。

以上可能是幻想。但我想知道有什么可以让用户轻松输入向量优先级和随后的修改。

从头开始构建这将是一项艰巨的任务。

您可以使用库中的 rank_list(sortable):

library(shiny)
library(sortable)

ui <- fluidPage(
  selectizeInput(inputId = "classNames", label = "Classes", choices = "A", selected="A",
                 multiple = TRUE, options = list(
                   'plugins' = list('remove_button'),
                   'create' = TRUE,
                   'persist' = FALSE)
  ),
  uiOutput("rank_listUI"),
  textOutput("classesOrder")
)

server <- function(input, output, session) {
  output$rank_listUI <- renderUI({
    rank_list(
      text = "Order classes",
      labels = input$classNames,
      input_id = "sortableClasses"
    )}
  )
  
  output$classesOrder <- renderText({paste("Current order:", paste0(input$sortableClasses, collapse = ", "))})
  
}

shinyApp(ui, server)

目前我不知道有任何图书馆允许您在问题的第二部分描述的场景。唯一接近的是库(d3Tree),它旨在以交互方式显示分层数据。