r - 根据可编辑单元格用户输入更新闪亮的 DT
问题描述
一个小例子闪亮的应用程序:
library(shiny)
library(tidyverse)
library(DT)
ui <- fluidPage(
# Application title
titlePanel("blah"),
sidebarLayout(
sidebarPanel(
sliderInput("bins",
"Number of bins:",
min = 1,
max = 50,
value = 30)
),
# Show a plot of the generated distribution
mainPanel(
DT::DTOutput('ex_table')
)
)
)
server <- function(input, output) {
output$ex_table <- DT::renderDataTable(mtcars %>% select(cyl) %>% mutate(blah = cyl + 2),
selection = 'none', editable = TRUE)
}
# Run the application
shinyApp(ui = ui, server = server)
您可以编辑单元格,因为我editable = TRUE
在renderDataTable()
.
我提供数据表的表有以下行:
mtcars %>% select(cyl) %>% mutate(blah = cyl + 2)
所以功能“等等”应该始终是 cyl + 2 中的任何内容。在屏幕截图中,我添加了 10,000,因此所需的输出将是数据表在按 Enter 后更新以显示 10,002。
这可能吗?我怎样才能做到这一点?
解决方案
您可以按照这些示例进行操作。
尝试 :
library(shiny)
library(tidyverse)
library(DT)
ui <- fluidPage(
# Application title
titlePanel("blah"),
sidebarLayout(
sidebarPanel(
sliderInput("bins",
"Number of bins:",
min = 1,
max = 50,
value = 30)
),
# Show a plot of the generated distribution
mainPanel(
DT::DTOutput('modtable'),
)
)
)
server <- function(input, output,session) {
data <- mtcars %>% select(cyl) %>% mutate(blah = cyl + 2)
output$modtable <- DT::renderDT(data, selection = 'none', editable = TRUE)
proxy = dataTableProxy('modtable')
observeEvent(input$modtable_cell_edit, {
info = input$modtable_cell_edit
str(info)
i = info$row
j = info$col
v = info$value
data <<- editData(data, info)
if(j==1){data[i,j+1]<<-as.numeric(data[i,j])+2}
replaceData(proxy, data, resetPaging = FALSE)
})
}
# Run the application
shinyApp(ui = ui, server = server)
推荐阅读
- codesys - CoDeSys 2.3 - 收到信号后线圈不会激活
- python - 曼巴无法创建环境
- html - 如何将 CSS 应用到这个 div 类?
- javascript - 从 firebase firestore 获取数组长度
- python - 错误“h”格式需要 -32768 <= number <= 32767
- vb.net - 使用 GeckoFx60 以编程方式单击 Div 元素
- html - 如何在覆盖css的底角制作一个孔区域
- .net - System.InvalidOperationException: '对象是只读的。' 当通过token SSL证书和token密码消费soap服务时
- bash - 如何在 linux ftp 客户端登录然后运行命令?
- python - Prophet fit 不识别回归器