私は次のコードを書いています....何らかの理由でvalidate
がキックオフされず、plot
コマンドがエラーで実行されます。私は何が欠けていますか?データフレームの観点からShinyはゼロ行データフレームで作業していないことを検証しますか?
library(shiny)
df <- data.frame(x = 1, y = 1)
ui <- fluidPage(
plotOutput('plot')
)
server <- function(input, output) {
output$plot <- renderPlot({
df <- df[-1, ]
validate(
need(nrow(df),
"Not Enough Data")
)
plot(df$x, df$y)
})
}
shinyApp(ui = ui, server = server)
すべてが正常に見える:
df <- data.frame(x = 1, y = 1)
df
x y
1 1 1
df <- df[-1, ]
df
[1] x y
<0 rows> (or 0-length row.names)
nrow(df)
[1] 0
names(df)
[1] "x" "y"
need' 'を参照してください、' Details'セクション。 'need'の式の' 0'結果は失敗と見なされないので、メッセージはトリガされません。 'FALSE'、' NULL'などのオブジェクトは失敗とみなされます。 R '0'と' FALSE'は異なっていることに注意してください。以下の答えはあなたの問題を解決するはずです。 – nicola