如何阻止Renderable默认设置为小数点后2位?
我正在开发一个闪亮的应用程序,它可以响应一些用户输入并生成一个表。我需要该表中的数据至少保留3位小数,但renderTable保持默认值为2 我尝试过使用digits=和round函数,但输出没有任何变化。下面是示例代码如何阻止Renderable默认设置为小数点后2位?,r,shiny,R,Shiny,我正在开发一个闪亮的应用程序,它可以响应一些用户输入并生成一个表。我需要该表中的数据至少保留3位小数,但renderTable保持默认值为2 我尝试过使用digits=和round函数,但输出没有任何变化。下面是示例代码 library(shiny) x1 <- c("red", "orange", "yellow", "green", "blue", "indigo", "violet") ui <- fluidPage( fluidPage(title = "Exampl
library(shiny)
x1 <- c("red", "orange", "yellow", "green", "blue", "indigo", "violet")
ui <- fluidPage(
fluidPage(title = "Example Shiny"),
sidebarLayout(
sidebarPanel(
numericInput("rank", "Rank 1 - 7", value = 3, min =1, max = 7),
selectInput("color", "Color", x1),
numericInput("x2", "Another Variable (enter any number)", value = 0, min = 0, max = 500)
),
mainPanel(
tabsetPanel(type = "tabs",
tabPanel("Table", tableOutput("table"))
)
)
)
)
server <- function(input, output, session) {
color_table <- data.frame('red' = c(1,2,3,4,5,6,7,8,9,10,0,0,0,0,0,0,0,0,0,0,0),
'orange' = c(0.1,0.2,0.3,0.4,0.5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
"yellow" = c(10,20,30,40,50,60,70,80, 0, 0,0,0,0,0,0,0,0,0,0,0,0),
"green" = c(0.1,0.2,0.3,0.4,0.5, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
"blue" = c(0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,2.0,0),
"indigo" = c(0.055,0.105,0.205,0.305,0.405,0.505,0.605,0.705,0.805,0.905,1.005,1.105,1.205,1.305,1.405,1.505,1.605,1.705,1.805,1.905,2.05),
"violet" = c(0.055,0.105,0.155,0.205,0.250,0.300,0.350,0.400,0,0,0,0,0,0,0,0,0,0,0,0,0))
rank <- reactive({
get(input$rank, inherits = FALSE)
})
output$table <- renderTable({
var1 = color_table[, input$color]
var2 = if(input$color == "red" | input$color == "orange") {
((var1 * as.numeric(input$rank) * 60)/ as.numeric(input$x2))/1000
} else {
var1 * as.numeric(input$rank) / as.numeric(input$x2)
}
data.frame(Var1 = var1, Var2 = var2)
})
}
shinyApp(ui, server)
库(闪亮)
x1digits
参数起作用。要这样使用:
output$table <- renderTable({
var1 = color_table[, input$color]
var2 = if(input$color == "red" | input$color == "orange") {
((var1 * as.numeric(input$rank) * 60)/ as.numeric(input$x2))/1000
} else {
var1 * as.numeric(input$rank) / as.numeric(input$x2)
}
data.frame(Var1 = var1, Var2 = var2)
}, digits = 3)
仅在var2列中输出$table?这是必要的,但在var1列中也可以有3。你下面的答案有效。我想我之前漏掉了逗号。这很好+1但是,?renderDataTable()
不显示任何数字
参数,那么这是如何工作的,以及如何在没有反复尝试的情况下解决这个问题?我正在研究这个答案,并尝试了options=list(digits=3)
,但没有成功。但至少选项
是有文档记录的参数。@Shree这是可渲染的
,而不是可渲染的
。啊!我的错。谢谢!:)