我正在尝试使用R中的Shiny显示频率表,但是由于某种原因,它坚持将频率显示到两位小数。我试过使用round(),但这没有任何影响。我猜测可能与合并有关,因为当我备份并仅显示频率表时,显示的频率没有不必要的小数位...但是我不确定是哪一部分引起了问题,这就是为什么在此示例中,我将几乎所有整理的元素都包括在内的原因。您需要搜索一种水果(例如苹果)以使表格显示出来,并了解我的意思。
感谢您的帮助!
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)
答案 0 :(得分:2)
您快到了,只需替换:
searched_fruit$freq <- round(searched_fruit$freq)
使用
searched_fruit$freq <- as.integer(searched_fruit$freq)
一种替代方法是使用renderTable
的{{1}}参数来更改其对数字列的默认行为,如下所示:
digits