Я пытаюсь получить разные рамки данных для разных разрешений в моем ShinyApp (я использую shinyauthr
и shinydashboard
), функция возвращает следующее сообщение об ошибке:
Ошибка в UseMethod : нет применимого метода для 'group_by_', примененного к объекту класса "NULL" [Нет трассировки стека]
Следуйте коду моей стороны сервера:
credentials <- callModule(shinyauthr::login, "login",
data = user_base,
user_col = user,
pwd_col = password,
sodium_hashed = TRUE,
log_out = reactive(logout_init()))
logout_init <- callModule(shinyauthr::logout, "logout", reactive(credentials()$user_auth))
user_info <- reactive({credentials()$info})
output$welcome <- renderText({
req(credentials()$user_auth)
paste("Bem vindo", user_info()$name)
})
user_data <- reactive({
req(credentials()$user_auth)
if (user_info()$permissions == "admin") {
get_data() %>% pre_processing()
} else if (user_info()$permissions == "standard") {
get_data() %>% pre_processing() %>% filter(`Responsável` == user_info()$name)
}
})
And I ' Убедитесь, что фильтр возвращает эту ошибку.
Следуйте вспомогательным функциям get_data() and pre_processing()
, но ошибка возникла только в другой стороне после фильтра.
get_data ()
get_data <- function(){
get_auth()
if(gs4_has_token()){
url <- "https://docs.google.com/spreadsheets/d/17-c3VYzBhRWnE8BrfWdSyeLwglL4OmttEqS8ln3Jr5s/"
sheets <- sheet_names(url) %>% .[3:4] %>% str_subset("Novo")
df <- sheets %>%
map_df(~ range_read(url, sheet = .x, skip = 5, na = "-") %>%
mutate("month" = paste0("01.",.x %>% str_sub(start = -7))) %>%
mutate("month" = month %>% as_date(format = "%d.%m.%Y")) %>%
replace_na(list(`Etapa Atual` = "Captação")) %>%
mutate("Responsável" = case_when(`Etapa Atual` == "Captação" ~ "Rodrigo", TRUE ~ Responsável)))
return(df)
}
}
pre_processing ()
pre_processing <- function(df){
df %>%
mutate("NovasBases" = paste(year(month),
month(month),
parse_number(.$`Exp. Novas Bases`),
sep = "-") %>% as_date(),
"Recebimento" = as.Date(`Data Recebimento`),
"Conferência" = as.Date(`Data Conf.`),
"Etapa" = `Etapa Atual`,"Envio" = as.Date(`Data Envio`)) %>%
select(Empresa, Corretora, Seguradora, Responsável, Etapa,
NovasBases, Status, Recebimento, Conferência, Envio) %>%
filter(Status == "Ativo" & is.na(Etapa) | Etapa != "Enviado!") %>%
mutate("Recebimento" = coalesce(Recebimento, NovasBases)) %>%
select(-Status) %>%
pivot_longer(c(-Empresa, -Corretora, -Seguradora, -Responsável, -Etapa, -NovasBases),
names_to = "EtAtual",
values_to = "Data") %>%
ungroup() -> temp
return(temp)
}
Obs. Если я запускаю код за пределами shinyapp, я не получаю никакой ошибки.