停止表格添加小数位

时间:2018-12-07 13:39:57

标签: r shiny

我正在尝试使用R中的Shiny显示频率表,但是由于某种原因,它坚持将频率显示到两位小数。我试过使用round(),但这没有任何影响。我猜测可能与合并有关,因为当我备份并仅显示频率表时,显示的频率没有不必要的小数位...但是我不确定是哪一部分引起了问题,这就是为什么在此示例中,我将几乎所有整理的元素都包括在内的原因。您需要搜索一种水果(例如苹果)以使表格显示出来,并了解我的意思。

感谢您的帮助!

现在看起来像什么: Current view

library("shiny")
library("shinydashboard")

fruit <- as.character(c("apple", "pineapple", 
                        "orange", "watermelon", "apple", 
                        "grape", "orange", "apple", "grape"))

fruit_type <- as.character(c("apple", "pineapple", "orange", "watermelon", "grape", "banana", "coconut"))
fruit_rating <- 1:7
fruit_info <- data.frame(fruit_type, fruit_rating, stringsAsFactors = F)

sidebar <- dashboardSidebar(searchInput("search",
                                        btnSearch = icon("search"), 
                                        btnReset = icon("remove")))

body <- dashboardBody(tableOutput("table"))

ui <- dashboardPage(dashboardHeader(title = "Example"),
                    sidebar,
                    body
)

server <- function(input, output) {
  output$table <- renderTable({
    fruit_query <- input$search
    fruit_count <- plyr::count(fruit)
    colnames(fruit_count)[1] <- "fruit_type"
    fruit_count$fruit_type <- as.character(fruit_count$fruit_type)
    fruit_count <- merge(fruit_count, fruit_info, 
                               by = "fruit_type", all = T)
    fruit_count$freq <- ifelse(is.na(fruit_count$freq),
                               0, fruit_count$freq)
    searched_fruit <- fruit_count[fruit_count$fruit_type == fruit_query,]
    searched_fruit$freq <- round(searched_fruit$freq)
    return(searched_fruit)
  })
}

shinyApp(ui, server)

1 个答案:

答案 0 :(得分:2)

您快到了,只需替换:

searched_fruit$freq <- round(searched_fruit$freq)

使用

searched_fruit$freq <- as.integer(searched_fruit$freq)

一种替代方法是使用renderTable的{​​{1}}参数来更改其对数字列的默认行为,如下所示:

digits