我试图在一个盒子((中显示Sys.info((的输出,但它只显示一个词"Darwin"。
如果我做str(Sys.info())
,我会得到
Named chr [1:8] "Darwin" "15.5.0" ...
- attr(*, "names")= chr [1:8] "sysname" "release" "version" "nodename" ...
那么,我如何将其显示为框中的文本块呢?应该在服务器代码中调用它并显示在textOutput中吗?
这是位于ui.R
中的dashboardBody代码块,它位于一个闪亮的UI(dashboardPage(…((中:
dashboardBody(
fluidRow(
box(
title = "Time and Date",
status = "primary",
solidHeader = TRUE, width = 4,
"Time: ", Sys.time(), br(),
"Date: ", Sys.Date(), br(),
"Time Zone: ", Sys.timezone(), br(),
Sys.info(), br()
)
)
)
服务器。R只是空的:
shinyServer(function(input, output) {
})
您看到警告了吗?
charToRaw中的警告(enc2utf8(文本((:自变量应为长度为1的字符向量除了第一个元素之外的所有元素都将被忽略
使用这个替代:
library(shiny)
library(shinydashboard)
ui <- dashboardPage(
dashboardHeader(),
dashboardSidebar(),
dashboardBody(
box(textOutput("sys_info")),
box(tableOutput("sys_info2"))
)
)
server <- function(input, output) {
output$sys_info <- renderText({
a <- Sys.info()
a
})
output$sys_info2 <- renderTable({
a <- data.frame(Sys.info())
a
})
}
shinyApp(ui, server)