在 Shiny 中添加列到 handsontable 无法更改
Added columns to handsontable in Shiny cant be changed
我正在尝试制作一个应用程序,用户可以在其中将列和行添加到 table 他们可以用来设置规则来对存储在另一个对象中的数据集进行排序。
我构建了一个 reprex 来隔离问题。 UI 在单击添加按钮时成功地将行和列添加到 table。额外的行工作正常。但是,无法更改新列中的单元格。您可以输入文本但不能切换单元格。我仍在学习 Shiny 的反应规则,并怀疑问题出在那里。我尝试采用
但无济于事。
library(shiny)
library(rhandsontable)
library(tidyverse)
ui <- fluidPage(
actionButton("addRow",
"Add"),
numericInput("rows",
"Number of Rows",
value = 0,
min = 0),
numericInput("colAnd",
"Number of And Cols",
value = 0,
min = 0),
numericInput("colBut",
"Number of But Cols",
value = 0,
min = 0),
rHandsontableOutput("hot")
)
server <- function(input, output) {
df <- reactive({
tibble(Topic = "Null",
And = "Null",
But = "Null")
})
df2 <- eventReactive(input$addRow,{
add_row_custom<- function (df, n, add = "null")
{
new <- data.frame(matrix(add, nrow = n, ncol = ncol(df)))
colnames(new) <- colnames(df)
rbind(df, new)
}
final <- hot_to_r(input$hot)
final %>%
add_row_custom(., input$rows ) %>%
cbind(., data.frame(matrix("null",
nrow = nrow(.),
ncol = input$colAnd + input$colBut)
)
)
})
df4 <- reactive({
if(input$addRow == 0){
df()
}else{
df2()}
})
output$hot <- renderRHandsontable(rhandsontable(df4()) %>%
hot_table(highlightRow = T,
highlightCol = T))
}
# Run the application
shinyApp(ui = ui, server = server)
我花了 30 分钟才把头埋在这个上面几个小时,然后去了 rhandsontable 文档。
长话短说,在rhandsontable函数下添加参数useType = F。
我正在尝试制作一个应用程序,用户可以在其中将列和行添加到 table 他们可以用来设置规则来对存储在另一个对象中的数据集进行排序。
我构建了一个 reprex 来隔离问题。 UI 在单击添加按钮时成功地将行和列添加到 table。额外的行工作正常。但是,无法更改新列中的单元格。您可以输入文本但不能切换单元格。我仍在学习 Shiny 的反应规则,并怀疑问题出在那里。我尝试采用
但无济于事。
library(shiny)
library(rhandsontable)
library(tidyverse)
ui <- fluidPage(
actionButton("addRow",
"Add"),
numericInput("rows",
"Number of Rows",
value = 0,
min = 0),
numericInput("colAnd",
"Number of And Cols",
value = 0,
min = 0),
numericInput("colBut",
"Number of But Cols",
value = 0,
min = 0),
rHandsontableOutput("hot")
)
server <- function(input, output) {
df <- reactive({
tibble(Topic = "Null",
And = "Null",
But = "Null")
})
df2 <- eventReactive(input$addRow,{
add_row_custom<- function (df, n, add = "null")
{
new <- data.frame(matrix(add, nrow = n, ncol = ncol(df)))
colnames(new) <- colnames(df)
rbind(df, new)
}
final <- hot_to_r(input$hot)
final %>%
add_row_custom(., input$rows ) %>%
cbind(., data.frame(matrix("null",
nrow = nrow(.),
ncol = input$colAnd + input$colBut)
)
)
})
df4 <- reactive({
if(input$addRow == 0){
df()
}else{
df2()}
})
output$hot <- renderRHandsontable(rhandsontable(df4()) %>%
hot_table(highlightRow = T,
highlightCol = T))
}
# Run the application
shinyApp(ui = ui, server = server)
我花了 30 分钟才把头埋在这个上面几个小时,然后去了 rhandsontable 文档。
长话短说,在rhandsontable函数下添加参数useType = F。