Я новичок в Блестящем, и я пытаюсь сделать простой график плотности, где есть 2 группы данных с реактивными «сдвигами» в среднем и т. Д. Упрощенная сводка этого состоит в том, что один набор данных имеетсреднее значение 0 и дисперсия 1. Второй набор данных имеет среднее значение shift
, которое определено в ползунке.
Я пытался использовать reactiveValues
, как показано в кодениже для хранения матрицы наблюдений d1
, сгенерированной из функции density
значений y, а соответствующие значения x сохраняются в x
.
library(shiny)
# Define UI for application that draws a histogram
ui <- fluidPage(
# Application title
titlePanel("Old Faithful Geyser Data"),
# Sidebar with a slider input for number of bins
sidebarLayout(
sidebarPanel(
sliderInput("shift",
"shift of 2nd set",
min = -1,
max = 1,
value = 0)
),
# Show a plot of the generated distribution
mainPanel(
plotOutput("distPlot")
)
)
)
# Define server logic required to draw a histogram
server <- function(input, output) {
data <- reactiveValues({
d1 <- matrix(nrow=100, ncol=512)
for(i in 1:70){
d1[i,] <- density(rnorm(1000),from = -3, to = 3)$y
}
for(i in 71:100){
d1[i,] <- density(rnorm(1000, input$shift),from = -3, to = 3)$y
}
x <- density(rnorm(1000),from = -3, to = 3)$x
})
output$distPlot <- renderPlot({
matplot(data$x, t(data$d1), type = "l", lty = 1, col = c(rep(1,70),rep(2,30)))
})
}
# Run the application
shinyApp(ui = ui, server = server)
Приведенный выше код в основном взят из примера блестящего приложения, поэтому прошу прощения за любые общие ссылки.Это должно все еще работать.
Я ожидал блестящего графика с ползунком слева и графиком справа с 100 линиями плотности в 2 цветах.При изменении ползунка shift
второй набор данных (красный) будет перемещаться влево или вправо в зависимости от сдвига.
Вместо этого я получаю сообщение об ошибке
55: stop
54: .getReactiveEnvironment()$currentContext
53: .subset2(x, "impl")$get
52: $.reactivevalues
47: server [/beavis/Documents/test/app.R#37]
Error in .getReactiveEnvironment()$currentContext() :
Operation not allowed without an active reactive context. (You tried to do something that can only be done from inside a reactive expression or observer.)
Кто-нибудьв состоянии помочь мне исправить этот код?Любая помощь будет оценена.Проиграв около часа, я думаю, что проблема заключается в разделе reactiveValues
, но пока ничего не помогло.