Mój wykres ggvis zależy od kilku pól wejściowych, które działają jak filtr danych wejściowych. W przypadku niektórych kombinacji wynikowa ramka danych jest pusta, a ggvis zgłasza błąd i przerywa całą aplikację. Próbowałem wstawićWłaściwy sposób na powrót z ggvis, gdy dane są puste?
if(nrow(inputdataframe) == 0) return NULL
if(nrow(inputdataframe) == 0) return ggvis()
który nie pomógł. Jaki jest właściwy parametr powrotu w tej sytuacji (chcę zamiast tego mieć pustą fabułę lub jakąś wiadomość tekstową)?
server.R
effvis <- reactive ({
dta <- siteeff()
if(nrow(dta) == 0) return(NULL)
dta %>%
ggvis(~param.value, ~yvar) %>%
layer_points(size := 50, size.hover := 200) %>%
set_options(width = 800, height = 500)
})
effvis %>% bind_shiny("effplot")
ui.R -
ggvisOutput("effplot")
Aktualizacja
Nie chcę, aby pokazać wszystkie dane, gdy dane jest pusta (jak sugeruje here) To mylące
Jestem również zainteresowany tym. Właśnie warunkowo podawam dane.frame z tymi samymi kolumnami i zerami. Powinieneś móc używać 'conditionalPanel' w pliku ui.R, który analizuje reaktywny ciąg wskazujący, czy data.frame jest pusty, ale nie zawsze działa w moim przypadku. – ideamotor
Twój link "tutaj" był mi pomocny w przeszłości. Sprawdziłbym też link do aplikacji, z którą pracowała w komentarzach. Czy masz kontrolę wprowadzania danych w swoim interfejsie użytkownika? Powinieneś przetestować, że istnieją w server.r – miles2know
@ miles2know thanks for pointing to comments. Rzeczywiście, spojrzałem na jej kod i znalazłem funkcję sprawdzania poprawności(), o której nie wiedziałem - http://shiny.rstudio.com/articles/validation.html Ale nadal nie działa dla ggvis – RInatM