# Обрабатываем данные, приводим названия столцов к читаемому виду, добавляем столбец с индексом
names(ga.api.stat) <- str_remove_all(names(ga.api.stat), pattern = "ga\\:")
# Убираем из названий столбцов ga:
ga.api.stat$keyword <- stringr::str_replace_all(ga.api.stat$keyword, pattern = "[:punct:]", " ")
# удаляем все знаки пунктуации
ga.api.stat$keyword <- stringr::str_replace_all(ga.api.stat$keyword, pattern = "\\+", " ")
# удаляем +
ga.api.stat$keyword <- stringr::str_squish(ga.api.stat$keyword)
# Удаление лишних пробелов
ga.api.stat$keyword <- stringr::str_trim(ga.api.stat$keyword, side = c("both"))
# Удаление лишних пробелов по краям
ga.api.stat$keyword <- stringr::str_to_lower(ga.api.stat$keyword)
# перевод в нижний регистр
metrika_ga <- ga.api.stat
# Перезаписываем таблицу
metrika_ga <- as.data.table(metrika_ga)
# Переводим в формат data.table
setkey(metrika_ga, keyword)
# key(metrika_ga) - проверить какие столбцы ключевые
metrika_ga <- metrika_ga[.("keyword"), keyword := NA]
# присваиваем всем значениям (keyword) и keyword - NA
setkey(metrika_ga, keyword)
# key(metrika_ga) - проверить какие столбцы ключевые
metrika_ga <- na.omit(metrika_ga)
# удаляем все строчки с NA
metrika_ga[, date := lubridate::ymd(date)]
# Переводим дату в формат год-месяц-день
# Функция замены "--" на "0"
change_symbol <- function(x) {
ifelse (x == "--", 0, x)
}
metrika_ga <- lapply(metrika_ga, as.character)
# Переводим все колонки к типу character
metrika_ga <- lapply(metrika_ga, change_symbol)
# заменяем "--" на "0"
metrika_ga <- as.data.frame(metrika_ga)
# сохраняем объект как дата фрейм
keywords <- metrika_ga[,.(kw = keyword)]
# Выделяем столбец с ключевыми фразами
dirpath <- "~/Clients/keyword_text"
write.table(keywords$kw, file.path(dirpath, "kw.txt") )
# выгружаем все запросы из Метрики в файл kw.txt
system("~/MyStem/mystem -w -l -d -c -e utf-8 ~/Clients/keyword_text/kw.txt ~/Clients/keyword_text/output.txt")
# Приводим все запросы к одной лемме
output <- read.csv("~/Clients/keyword_text/output.txt", sep = " ", stringsAsFactors = F)
colnames(output) <- "keywords"
output$keywords <- stringr::str_remove_all(output$keywords, "\\?")
# Убираем знаки вопроса
output$keywords <- stringr::str_remove_all(output$keywords, "\\{")
# Убираем фигурные скобки
output$keywords <- stringr::str_remove_all(output$keywords, "\\}")
# Убираем фигурные скобки
output$keywords <- stringr::str_replace_all(output$keywords, pattern = "резкий", "резка")
# Резка была приведена к лемме "резкий", возвращаем обратно
output$keywords <- stringr::str_replace_all(output$keywords, pattern = "гибкий", "гибка")
# Гибка была приведена к лемме "гибкий", возвращаем обратно
output$ind <- (1:length(output$keywords))
# делаем индексную колонку
metrika_ga <- merge(metrika_ga, output, by = "ind")
# соединяем таблицу с леммами с основной
metrika_ga <- tidyr::separate_rows(metrika_ga, keywords, sep = " ")
# разбиваем таблицу по ключевым фразам
# Выгружаем данные в BigQuery
insert_upload_job("bigquery_data", "clients", "metrika_ga", metrika_ga, "bigquery_data", create_disposition = "CREATE_IF_NEEDED", write_disposition = "WRITE_TRUNCATE")
Sys.time()