我不精通 Javascript,想复制rhandsontable包中可用的下拉功能,但用于DT包。
如何以最有效的方式实现这一目标?
例子
library(DT)
i <- 1:5
datatable(iris[1:20, ],
editable = T,
options = list(
columnDefs = list(
list(
targets = 5,
render = JS(
# can't get my head around what should be in the renderer...
)
))
))
Run Code Online (Sandbox Code Playgroud)
目标是让i变量充当允许输入的验证器DT对象中。
任何帮助深表感谢!
replaceData()并使用 RDBMS (SQL Server) 上的数据。Ohio我想使用 id 设置我的数据(和 RDBMS)2。和 replaceData()
没有 replaceData()
我使用下面的这个技巧在 DT 表中添加复选框。它工作得很好,但是当有大量数据时,它在建筑物中非常慢,因为每个复选框的 html 数量非常重要。
我使用下面的这个技巧,类似于上一部分,来编写我的代码。但是我尝试仅基于单元格单击来构建,因为我知道上一部分很慢
预先感谢您的帮助 :)
library(shiny)
library(DT)
library(dplyr)
library(shinyjs)
library(DescTools)
# inspired by /sf/ask/4005092521/#57218361
#
ui <- fluidPage(
useShinyjs(),
tags$head(tags$script(
HTML("
Shiny.addCustomMessageHandler('unbindDT', function(id) { …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个表(使用 DT,请不要使用 rhandsontable),该表几乎没有现有列,一个 selectinput 列(其中每行都有可供选择的选项),最后是另一列,该列将根据用户选择进行填充从每行的 selectinput 下拉列表中。
在我的示例中,“反馈”列是用户下拉选择列。我无法更新“分数”列,该列将基于“反馈”列下拉列表中的选择。
if(interactive()){
library(DT)
library(shiny)
tbl1 <- data.frame(A = c(1:10), B = LETTERS[1:10], C = c(11:20), D = LETTERS[1:10])
ui <- fluidPage(
DT::dataTableOutput(outputId = 'my_table')
)
server <- function(input, output, session) {
rv <- reactiveValues(tbl = tbl1)
observe({
for (i in 1:nrow(rv$tbl)) {
rv$tbl$Feedback[i] <- as.character(selectInput(paste0("sel", i), "",
choices = c(1,2,3,4)
))
if(!is.null(input[[paste0("sel", i)]])) {
if(input[[paste0("sel", i)]] == 1) {
rv$tbl$Score[i] <- 10
} else if(input[[paste0("sel", i)]] == 2) {
rv$tbl$Score[i] <- 20
} …Run Code Online (Sandbox Code Playgroud) 我正在尝试为闪亮的仪表板制作一个数据表,该仪表板将在列上有一个下拉过滤器。我实际上可以使用它,但外观我称之为低于标准。
这是我的简单例子
library(DT)
mytable <- data.frame(Col1 = as.factor(LETTERS[1:3]))
datatable(mytable, filter = "top")
Run Code Online (Sandbox Code Playgroud)
当我激活下拉菜单时,过滤器文本输入看起来不错:
然而,当我点击离开时,它看起来并不那么好:
有没有什么方法可以保留那个漂亮的 A 和一个气泡中的 x(抱歉,我确信有一个更好的术语),或者至少去掉括号和引号?我知道,如果列值是字符而不是因子,我可以获得更好看的文本输入,但是它们我失去了下拉功能(与这个问题Factor dropdown filter in DT::datatable in闪亮仪表板不起作用),这我需要。
mytable <- data.frame(Col1 = LETTERS[1:3], stringsAsFactors = FALSE)
datatable(mytable, filter = "top")
Run Code Online (Sandbox Code Playgroud)
我对像这篇文章Edit datatable in Shiny with dropdown select for Factor Variables 中的单元格下拉菜单感到满意,但我需要过滤表格,而不是编辑它。
版本信息:
R版本3.5.3
DT_0.20