我正在开发一款shiny 的仪表板应用程序,我试图在点击按钮时向表格中添加新行.单击时,将从多个输入元素收集数据,这些数据收集在一个列表中,然后作为新行添加.但是,在添加行时,之前的所有行都变为‘NA’.

服务器编码:服务器编码:

    RowList <- c()
    dfRowList <<- data.frame(matrix(ncol = 13, nrow = 0))
    colnames(dfRowList) <<- c(# list of row properties #)

    observeEvent(input$AddRow, {
      Newrow <- paste0("R", length(RowList) + 1)
      RowList <<- append(RowList, NewRow)

      RProps <- c()
      RProps <- c(NewRow)
      for (prop in c(# list of row properties #)){
        Propvalue <- input[[paste0("R", prop)]]
        RProps <- append(RProps, Propvalue)
      }
      
      dfRowList[length(RowList),] <- RProps
      
      output$RowList <- renderTable(dfRowList)
    })

当使用rind()时,不会创建新的行,只有1行被新值替换,并且列名被替换:/

我判断了所有其他值.创建新的行名、属性和列表运行良好.当我使用View(DfRowList)查看数据帧本身时,它也显示了相同的问题(所以这不是呈现问题).因此,仅添加行并不起作用.

有人知道这是怎么回事吗?

提前谢谢你了!

推荐答案

一个基于已经发布的repository个例子的最小工作示例:

library(shiny)
library(data.table)

df = data.frame(Column1=character(), Column2=numeric())

ui <- fluidPage(

  sidebarPanel(
    textInput("input1", "First Input: (character)", "test"),
    numericInput("input2", "Second Input: (numeric)", min = 1, max = 10, value = 1),
    actionButton("add", "Add Data"),
  ),
  mainPanel(
    tabsetPanel(
      tabPanel("table", value = 1, DT::dataTableOutput("showtable"))
    )
  )
)

server <- function(input, output) {

  data_table <- reactiveVal(df)
  
  observeEvent(input$add, {
    t = rbind(data.frame(Column1 = input$input1,
                         Column2 = input$input2),data_table())
    data_table(t)
  })
  
  output$showtable <- DT::renderDataTable({
    data.table::data.table(data_table())
  })
}

# Run the application 
shinyApp(ui = ui, server = server)

R相关问答推荐

如何识别组内的行是否在同一列中具有值?

NA仅省略具有NA的 Select 行

用apply/map/etch替换循环以加快速度

R -列表元素中所有命名项的总和

使用facet_wrap()时如何将面板标题转换为脚注?

如何使用shinyChatR包配置聊天机器人

使用tidyverse / Mutate的存款账户余额

使用R中相同值创建分组观测指标

如何在xyplot中 for each 面板打印R^2

获取列中值更改的行号

如何从当前行上方找到符合特定条件的最接近值?

整数成随机顺序与约束R?

如何在区分不同条件的同时可视化跨时间的连续变量?

如何在一次运行中使用count进行多列计数

如何指定我的函数应该查找哪个引用表?

R-按最接近午夜的时间进行筛选

仅在R中的数据集开始和结束时删除所有 Select 列的具有NA的行

将箭头绘制在图形外部,而不是图形内部

如何根据未知数的多列排除重复行

R中治疗序列的相对时间指数