r - Shiny App:如何按列获取总和
问题描述
我有两个问题:-首先,我无法启动仅显示零或空白的表格,因此我创建了一个按钮,将所有内容设置为零,哪种有效,但并不理想。- 其次,我正在尝试计算 rhandontable 中每一列的列总和,但到目前为止我还不能让它工作。
我一直在寻找类似的问题,我发现了一些看起来很有希望的代码,但最终它只提供了单个列的总和,或者进行了一些更改,它会总结所有列,这不是我想要的。
ui <- fluidPage(
rHandsontableOutput('table'),
textOutput('result'),
actionButton("recalc", "re-enter data")
)
season<-c("Spring","Summer","Autum","Winter")
server <- function(input,output,session)({
values <- reactiveValues(data = NULL) ## assign it with NULL
## button press resets now the data frame
observeEvent(input$recalc, {
values$data[] <- 0
})
## changes in numericInput sets all (!) new values
observe({
values$data <-data.frame(row.names=season,Lake=1:4,Beach=1:4, Garden=1:4,stringsAsFactors = FALSE)
})
observe({
if(!is.null(input$table))
values$data <- hot_to_r(input$table)
})
output$table <- renderRHandsontable({
req(values$data)
rhandsontable(values$data,rowHeaderWidth = 100)
})
})
shinyApp(ui = ui, server = server)
预期结果将是第 5 列,其中包含每列的总和。用零或空白填充的起始表。
如果有人能指出我正确的方向,将不胜感激。
解决方案
您可以使用创建空单元格NA
。请检查以下示例来计算colSums
:
library(shiny)
library(rhandsontable)
ui <- fluidPage(
br(),
rHandsontableOutput('table'),
textOutput('result'),
br(),
actionButton("recalc", "re-enter data")
)
rowNames <- c("Spring", "Summer", "Autum", "Winter", "Sum")
defaultDF <- data.frame(
row.names = rowNames,
Lake = rep(NA_integer_, 5),
Beach = rep(NA_integer_, 5),
Garden = rep(NA_integer_, 5),
stringsAsFactors = FALSE
)
server <- function(input, output, session)
({
values <- reactiveValues(data = defaultDF) ## assign it with NULL
## button press resets now the data frame
observeEvent(input$recalc, {
values$data[] <- NA_integer_
})
observe({
req(input$table)
DF <- hot_to_r(input$table)
DF[setdiff(rowNames, "Sum"),]
DF["Sum",] <- colSums(DF[setdiff(rowNames, "Sum"),], na.rm = TRUE)
values$data <- DF
})
output$table <- renderRHandsontable({
req(values$data)
rhandsontable(values$data, rowHeaderWidth = 100) %>%
hot_row(nrow(values$data), readOnly = TRUE)
})
})
shinyApp(ui = ui, server = server)
推荐阅读
- sql-server - T-SQL 处理无结果
- c# - UserDialog 进度条不显示
- php - 重写查询字符串以允许 wordpress 中单个自定义帖子类型的多个 URL
- c++ - 带有 std::quoted 的 Visual Studio 中的错误
- r - RandomForest没有计算OOB错误
- ruby-on-rails - 2 分钟 Rails/AngularJS 后 SSO/SAML 会话超时
- html - 填充整页 div,每边减去填充
- javascript - 为什么javascript不能逐行运行
- react-native - 如何在加载数据时同时渲染 FlatList 的 listItem?
- ruby-on-rails - 多对多 ElasticSearch - Rails