Size: a a a

R (язык программирования)

2020 September 16

ИП

Иван Поздняков... in R (язык программирования)
Юта Мата Ссс
всем привет, подскажите пожалуйста, кто чем сможет:)
Есть набор данных — количество голосов и явка на участок. Данные уже сагрегированы. Для простоты возьму только голоса и явку «за»
turnout_yes — явка проголосовавших «за», в сегменте [0,1].
vote_yes — количество голосов, проголосовавших «за».
Вот так выглядят данные «вживую»:

# A tibble: 96,493 x 2
turnout_yes   vote_yes
        <dbl> <int>
1       0.768  1749
2       0.772  1378
3       0.662  1007
4       0.524   355
5       0.606   819
6       0.624   659
7       0.571   337
8       0.627   284
9       0.628   817
10       0.512   774

Задача — посчитать количество голосов в интервале явки 1.00%
Я понимаю что это должна быть гистограмма плотности распределения, но не могу придумать как привести две переменные к виду гистограммы.
Ничего не придумал лучше чем привести две переменные к одной, то есть:
«повторить ячейку turnout_yes N раз из ячейки vote_yes». И потом построить привычную гистограмму.
Но как-то видится мне такой подход не самым оптимальным — только для варианта «за» у меня получается 57 млн. значений.
Вобщем, вопрос — как построить гистограмму от двух переменных, где по X будет явка, а по Y количество голосов в интервале явки 1.00%?

Воспроизводимый пример:
set.seed(42)
data_set <- tibble(yes_turnout = rnorm(1000, mean = 0.5, sd = 0.15),
      yes = sample(1:1000, 1000, replace=TRUE))
Тут гистограмма как раз не подойдет, гистограмма - одномерна. Можно что-то вроде хитмапа: geom_bin2d, geom_raster, geom_tile
источник

ИП

Иван Поздняков... in R (язык программирования)
А, если уже саггрегированно, то можно просто лайнплот, скаттерплот, ну или барплот, но это все равно уже не гистограмма
источник

AP

Arcady Perla in R (язык программирования)
Nikita Kagan
вот тут мне нужно подробная инструкция как это сделать
Хорошая тема. С удовольствием почитал ответы.
Добавлю, а то что-то никто явным образом не упомянул про библиотеки rcpp и rinside
Код на c++ будет всего несколько строк. Примеров в документации достаточно для понимания как сделать R-код экзешеиком.
Но потребуется установить компилятор c++
А на компьютере пользователя все равно должен стоять R нужной версии с нужными библиотеками. По сути экзешник будет просто вызывать R и запускать скрипт.
источник

AP

Arcady Perla in R (язык программирования)
источник

ОЛ

Олег Логинов... in R (язык программирования)
@AlexeySeleznev пытаюсь авторизоваться через ваш пакет rmytarget. ввожу код, подтверждаю y, и выскакивает ошибка: Token saved at C:/Users/Oleg/Documents/логин.mytar.Auth.RData
Loading |Ошибка в myTarGetCampaignList(login = "логин", token_path = "C:/Users/Oleg/Documents") :
 Forbidden (HTTP 403).
что может быть?
источник

AS

Alexey Seleznev in R (язык программирования)
Олег Логинов
@AlexeySeleznev пытаюсь авторизоваться через ваш пакет rmytarget. ввожу код, подтверждаю y, и выскакивает ошибка: Token saved at C:/Users/Oleg/Documents/логин.mytar.Auth.RData
Loading |Ошибка в myTarGetCampaignList(login = "логин", token_path = "C:/Users/Oleg/Documents") :
 Forbidden (HTTP 403).
что может быть?
скорее всего вы работаете с агентским аккаунтом, и невнимательно прочитали справку по авторизации
источник

AS

Alexey Seleznev in R (язык программирования)
@olegloginov

а в справке всё описано, вы выбрали авторизацию под агентским аккаунтом, а не под подчинённым и пытаетесь их него вытащить список кампаний
источник

ОЛ

Олег Логинов... in R (язык программирования)
да, выбирал 1-й пункт. спасибо, попробую еще раз и выберу 2-й пункт
источник

AS

Alexey Seleznev in R (язык программирования)
прочитайте в справке в чём разница, по первому пункту вы авторизуетесь именно под агентским акком, и можете запросить только список подчинённых аккаунтов, но статистику или список кампаний / объявлений так нельзя
источник

IS

Ivan Struzhkov in R (язык программирования)
Юта Мата Ссс
всем привет, подскажите пожалуйста, кто чем сможет:)
Есть набор данных — количество голосов и явка на участок. Данные уже сагрегированы. Для простоты возьму только голоса и явку «за»
turnout_yes — явка проголосовавших «за», в сегменте [0,1].
vote_yes — количество голосов, проголосовавших «за».
Вот так выглядят данные «вживую»:

# A tibble: 96,493 x 2
turnout_yes   vote_yes
        <dbl> <int>
1       0.768  1749
2       0.772  1378
3       0.662  1007
4       0.524   355
5       0.606   819
6       0.624   659
7       0.571   337
8       0.627   284
9       0.628   817
10       0.512   774

Задача — посчитать количество голосов в интервале явки 1.00%
Я понимаю что это должна быть гистограмма плотности распределения, но не могу придумать как привести две переменные к виду гистограммы.
Ничего не придумал лучше чем привести две переменные к одной, то есть:
«повторить ячейку turnout_yes N раз из ячейки vote_yes». И потом построить привычную гистограмму.
Но как-то видится мне такой подход не самым оптимальным — только для варианта «за» у меня получается 57 млн. значений.
Вобщем, вопрос — как построить гистограмму от двух переменных, где по X будет явка, а по Y количество голосов в интервале явки 1.00%?

Воспроизводимый пример:
set.seed(42)
data_set <- tibble(yes_turnout = rnorm(1000, mean = 0.5, sd = 0.15),
      yes = sample(1:1000, 1000, replace=TRUE))
фунция cut() умеет разрезать диапозон на интервалы по заданому вектору точек отсечения. После этого можно посчитать сумму

data_set %>% mutate(bin=cut(yes_turnout,breaks = seq(0,1,0.01))) %>% group_by(bin) %>% summarise(sum=sum(yes))


в аргументах можно задать лейблы, определить принцип включения пограничных значений и тд
источник

EK

Eugene Kasatkin in R (язык программирования)
Добрый день!
через пакет RAdwords или как-нибудь другим способом можно получить данные баланса кабинета?
источник

AS

Alexey Seleznev in R (язык программирования)
Eugene Kasatkin
Добрый день!
через пакет RAdwords или как-нибудь другим способом можно получить данные баланса кабинета?
API Google Ads насколько я знаю до сих пор не отдаёт баланс, разве что как то извращаться и парсить
источник

В

Виктор in R (язык программирования)
из МСС можно в телегу и на почту же слать уведомления
источник

В

Виктор in R (язык программирования)
У вас на нетпике же статья. Норм вроде скрипт.
источник

AS

Alexey Seleznev in R (язык программирования)
Виктор
из МСС можно в телегу и на почту же слать уведомления
ну там не через R, там вроде на внутренних эдсовских скриптах
источник

AS

Alexey Seleznev in R (язык программирования)
по API не вытащить вроде
источник

В

Виктор in R (язык программирования)
Точно. Я и забыл(( да он же не аровский
источник

ЮМ

Юта Мата Ссс... in R (язык программирования)
Ivan Struzhkov
фунция cut() умеет разрезать диапозон на интервалы по заданому вектору точек отсечения. После этого можно посчитать сумму

data_set %>% mutate(bin=cut(yes_turnout,breaks = seq(0,1,0.01))) %>% group_by(bin) %>% summarise(sum=sum(yes))


в аргументах можно задать лейблы, определить принцип включения пограничных значений и тд
Здорово! Это именно то, что нужно. Премного благодарен, повнимательнее изучу функцию!
источник

ЮМ

Юта Мата Ссс... in R (язык программирования)
aGricolaMZ
А нельзя отфильтровать первый столбец по значению 0.01, а дальше сложить произведения обоих столбцов? Или я не понимаю фразу "количество голосов в интервале"
Спасибо за участие, в комменте выше ответ, который мне помог.
Не совсем фильтрация, может я неправильно выразился, в конечном итоге я хочу получить график, примерно как на картинке:
источник

ЮМ

Юта Мата Ссс... in R (язык программирования)
Иван Поздняков
Тут гистограмма как раз не подойдет, гистограмма - одномерна. Можно что-то вроде хитмапа: geom_bin2d, geom_raster, geom_tile
Спасибо, попробую и эти функции
источник