Я создаю приложение Shiny, которое использует GoogleAuthR для извлечения данных из Google Analytics. Приложение Shiny требует от пользователя ввода значения свободного текста. Как в приведенном ниже коде.
Пожалуйста, ознакомьтесь с представлением о функциональности ввода текста с кнопкой выполнения:
library(shiny)
ui <- fluidPage(
textInput("url", label = h5(strong("URL Checker")), value = "Enter full page URL..."),
actionButton("exe", "Run Calculator",
style="color: #fff; background-color: #337ab7; border-color: #2e6da4"),
mainPanel(
textOutput("page")
))
server <- function(input, output, session) {
observeEvent( input$exe,{
x <- input$url
output$page <- renderPrint(x)
})
}
shinyApp(ui = ui, server = server)
Мне нужно, чтобы текстовое значение (в данном случае URL) затем передавалось в фильтр такой, что данные, возвращаемые из Google Analytics, предназначены только для указанной страницы / URL.
Обычно при использовании API это будет выглядеть примерно так:
pageFilter <- dim_filter("dimension97" , "REGEX","https://SomeWebURL/index.html",not = FALSE)
filts2 <- filter_clause_ga4(list(pageFilter))
Я пытался повторить это методология с использованием приведенного ниже кода;
### ACTION BUTTON
observeEvent( input$exe,{
x <- input$url
filterPageurl <- dim_filter("dimension97" , "REGEX", x ,not = FALSE)
pageFilt <- filter_clause_ga4(list(filterPageurl))
with_shiny(
google_analytics,
view_id(),
date_range = date_range,
dimensions = "date",
metrics = "users",
dim_filters = pageFilt,
max = -1,
shiny_access_token = auth()
)
})
Однако это возвращает ошибку:
Error $ operator is invalid for atomic vectors
На самом деле довольно застрял на этом. Любая помощь с благодарностью.