私は現在、R、より具体的にはシンダッシュボードを使って...よくダッシュボードを作成する方法を学んでいます。 私はRの初心者なので、私はshinydashboardチュートリアル(https://rstudio.github.io/shinydashboard/structure.html)に取り組み、それを再現して自分のニーズに合わせようとしています。動的コンテンツ、特に動的メッセージメニューに関するコード部分まではすべてうまくいった。 チュートリアルの対話型メッセージメニューのコードをコピーしてスクリプト全体を実行すると、光沢のあるウィンドウがポップアップし、すぐにエラーメッセージが表示されました(コードとメッセージについては以下を参照)。 次に、動的なメニューの他の例のためにインターネットを見ようとしましたが、いくつか見つかりましたが、関数renderMenuが使用されるたびに、すばやくポップアップして閉じている光沢のあるウィンドウで同じエラーメッセージが表示されます。レンダーメニューを使用した定期的なエラーR
ここで私は問題の一部にまで持っていたコード(すべては、私はいくつかの記述やインタラクティブなコンテンツを持つ光沢のあるウィンドウを取得、うまくいくように見える)です:
library(shiny)
library(shinydashboard)
ui <- dashboardPage(
dashboardHeader(title="AQUILAIR PLUS",
dropdownMenu(type = "messages",
messageItem(
from = "Sales Dept",
message = "Sales are steady this month."
),
messageItem(
from = "New User",
message = "How do I register?",
icon = icon("question"),
time = "13:45"
),
messageItem(
from = "Support",
message = "The new server is ready.",
icon = icon("life-ring"),
time = "2014-12-01"
)),
dropdownMenu(type = "notifications",
notificationItem(
text = "5 new users today",
icon("users")
),
notificationItem(
text = "12 items delivered",
icon("truck"),
status = "success"
),
notificationItem(
text = "Server load at 86%",
icon = icon("exclamation-triangle"),
status = "warning"
)
)
),
dashboardSidebar(
sidebarMenu(
menuItem("Dashboard", tabName = "dashboard", icon = icon("dashboard")),
menuItem("Widgets", tabName = "widgets", icon = icon("th"))
)
),
dashboardBody(
tabItems(
# First tab content
tabItem(tabName = "dashboard",
h2("Graphes de suivi"),
fluidRow(
box(title = "Graphiques", status = "primary",
plotOutput("plot1", height = 250),
plotOutput("plot2", height = 250)
),
box(title= "Informations", status = "info",
"Texte descriptif", br(), "blablabla",
sliderInput("slider", "Number of observations:", 1, 100, 50),
sliderInput("slider2", "Curseur 2:", 1, 200, 25),
textInput("text", "Commentaire :")
),
box(title = "Commentaires éventuels", status="success",
solidHeader = TRUE,
collapsible = TRUE,
"Commentaire :",
textOutput("text")
)
)
),
# Second tab content
tabItem(tabName = "widgets",
h2("Widgets tab*** content")
)
)
)
)
server <- function(input, output) {
set.seed(122)
histdata <- rnorm(500)
output$text <- renderText({
print(input$text)
})
output$plot1 <- renderPlot({
data <- histdata[seq_len(input$slider)]
hist(data)
})
output$plot2 <- renderPlot({
data2 <- histdata[seq_len(input$slider2)]
hist(data2)
})
}
shinyApp(ui, server)
その後、私はチュートリアルをコピー&ペーストしようとしたが、 UI部分に
:動的なメッセージメニューを取得する
dashboardHeader(dropdownMenuOutput("messageMenu"))
サーバーの一部に:
output$messageMenu <- renderMenu({
# Code to generate each of the messageItems here, in a list. This assumes
# that messageData is a data frame with two columns, 'from' and 'message'.
msgs <- apply(messageData, 1, function(row) {
messageItem(from = row[["from"]], message = row[["message"]])
})
# This is equivalent to calling:
# dropdownMenu(type="messages", msgs[[1]], msgs[[2]], ...)
dropdownMenu(type = "messages", .list = msgs)
})
次のエラーメッセージで終了ウィンドウが来る:
Warning: Error in markRenderFunction: unused argument (outputArgs = outputArgs)
Stack trace (innermost first):
45: markRenderFunction
44: renderMenu
43: server [#15]
4: <Anonymous>
3: do.call
2: print.shiny.appobj
1: <Promise>
Error in markRenderFunction(uiOutput, renderFunc, outputArgs = outputArgs) :
unused argument (outputArgs = outputArgs)"
は、私が最初のMessageDataが定義されていなかったことを考え出したので、私は、コードの先頭に追加:
messageData = data.frame('from' = c('me', 'you', 'them'), 'message' = c('first message' ,'second','third'))
ウィンドウの動作やエラーメッセージは変更されませんでした。私が言ったように、私は助けていないとまったく同じコードを、といういくつかのこと、多くの例を発見した...しかし、動的メニューの他の例を探してい
library(shiny)
library(shinydashboard)
messageData = data.frame('from' = c('me', 'you', 'them'), 'message' = c('first message' ,'second','third'))
ui <- dashboardPage(
dashboardHeader(title="AQUILAIR PLUS",
dropdownMenu(type = "messages",
messageItem(
from = "Sales Dept",
message = "Sales are steady this month."
),
messageItem(
from = "New User",
message = "How do I register?",
icon = icon("question"),
time = "13:45"
),
messageItem(
from = "Support",
message = "The new server is ready.",
icon = icon("life-ring"),
time = "2014-12-01"
)),
dropdownMenuOutput("messageMenu"),
dropdownMenu(type = "notifications",
notificationItem(
text = "5 new users today",
icon("users")
),
notificationItem(
text = "12 items delivered",
icon("truck"),
status = "success"
),
notificationItem(
text = "Server load at 86%",
icon = icon("exclamation-triangle"),
status = "warning"
)
)
),
dashboardSidebar(
sidebarMenu(
menuItem("Dashboard", tabName = "dashboard", icon = icon("dashboard")),
menuItem("Widgets", tabName = "widgets", icon = icon("th"))
)),
dashboardBody(
tabItems(
# First tab content
tabItem(tabName = "dashboard",
h2("Graphes de suivi"),
fluidRow(
box(title = "Graphiques", status = "primary",
plotOutput("plot1", height = 250),
plotOutput("plot2", height = 250)
),
box(title= "Informations", status = "info",
"Texte descriptif", br(), "blablabla",
sliderInput("slider", "Number of observations:", 1, 100, 50),
sliderInput("slider2", "Curseur 2:", 1, 200, 25),
textInput("text", "Commentaire :")
),
box(title = "Commentaires éventuels", status="success",
solidHeader = TRUE,
collapsible = TRUE,
"Commentaire :",
textOutput("text")
)
)
),
# Second tab content
tabItem(tabName = "widgets",
h2("Widgets tab*** content")
)
)
)
)
server <- function(input, output) {
set.seed(122)
histdata <- rnorm(500)
output$text <- renderText({
print(input$text)
})
output$plot1 <- renderPlot({
data <- histdata[seq_len(input$slider)]
hist(data)
})
output$plot2 <- renderPlot({
data2 <- histdata[seq_len(input$slider2)]
hist(data2)
})
output$messageMenu <- renderMenu({
msgs <- apply(messageData, 1, function(row) {
messageItem(from = row[["from"]], message = row[["message"]])
})
dropdownMenu(type = "messages", .list = msgs)
})
}
shinyApp(ui, server)
: はここに私の全体の「エラーが発生したコード」ですrenderMenuのヘルプで、このいずれかを、私を見つけました:
# ========== Dynamic sidebarMenu ==========
ui <- dashboardPage(
dashboardHeader(title = "Dynamic sidebar"),
dashboardSidebar(
sidebarMenuOutput("menu")
),
dashboardBody()
)
server <- function(input, output) {
output$menu <- renderMenu({
sidebarMenu(
menuItem("Menu item", icon = icon("calendar"))
)
})
}
shinyApp(ui, server)
...そして、それは私にまったく同じウィンドウの動作と私はrenderMenu機能の深刻な問題を抱えていることを、私は推測する、意味のエラーメッセージを与えます。 私は自分のコードにoutputArgsを挿入しようとしましたが、それがリストでなければなりませんが、どのように、どこで使われるのかは分かりません。
私は何か巨大なものを逃した場合は事前にお詫び申し上げます。私はそれが多くの人に基本的なコードに見えるかもしれないことを知っていますが、私は初心者であり、私は私の非動的なメニューで詰まっているようにいくつかの助け/ explainationsを本当に感謝するでしょう:(
おかげで、私はこの1つで私のMessageDataを交換し、どちらも正しい種類のを生成するように見えますデータフレーム。とにかく、私は同じエラーが発生しました:/ – AUB
あなたのコードの行を入力することは、私のために正しく動作します。あなたが最後にコードブロックでは、間違った場所にいくつかの括弧があります。私の更新された答えを見てください。 – Lespied
私のコードを修正していただきありがとうございます!しかし、私はまだ同じエラーを取得...? – AUB