Я создаю блестящее приложение, которое отображает данные в зависимости от выбранного варианта.
Моя текущая проблема связана с лагом.
Я пробовал два варианта:
создать список сохраненных данных (~ 300 МБ). Эта опция создает 1-2-минутную задержку при инициализации runApp (), но когда запускается блестящее приложение, графики быстро загружаются между вариантами переключения в selectInput.
Сохраните данные для каждого выбора в виде отдельного файла .rds (~ 100 МБ каждый). Задержка составляет около 10 секунд с помощью runApp (). Когда я переключаюсь между вариантами выбора, отображение графиков занимает около 6 секунд.
Я ожидаю увеличения размера выборок в моем наборе данных, поэтому поведение с вариантом 1 изменится, но второй вариант должен быть таким же, так как образцы хранятся отдельно. Похоже, вариант 2 лучше, но мне не нравится отставание при загрузке графиков.
Поэтому я хотел узнать, есть ли какие-нибудь советы по изменению моего подхода или есть ли альтернативные способы работы с большими наборами данных, когда дело доходит до загрузки данных для «блестящих»?
См. Пример
red1.rds, red2.rds, red3.rds хранятся в списке, который сохраняется как sample_data.rds:
$red1.rds
x y
1 3
5 4
3 7
$red2.rds
x y
1 3
8 5
3 7
$red3.rds
x y
1 3
2 6
3 7
samp <- readRDS("data/sample_data.rds") #option 1 loading a list of data at start
ui <- fluidPage(
selectInput(inputId = "sample",
label = "Select a sample",
choices = c("SampA" = 'red1', "SampB" = 'red2', "SampC" = "red3")
selected = 1 ),
plotOutput("samplePlot")
)
server <- function(input, output){
samp_data <- reactive <- ({
samp <- samp[paste0(input$sample, ".rds")][[1]] #option 1
samp <- readRDS(paste0("data/", input$sample, ".rds")) #option 2 reading each file which has been saved individually in this case.
})
output$samplePlot <- renderPlot({
st <- samp()
ggplot(st)+ggcol(aes(x, weight = y))
}