Подсчет строк на основе двух других значений столбца и манипулирование значением в al oop через одно из этих значений столбца в R - PullRequest
1 голос
/ 28 февраля 2020

Существует три столбца: веб-сайт, дата ("% Y% m"), отслеживание кликов (T / F). Я хотел бы добавить переменную, описывающую количество веб-сайтов, у которых отслеживание кликов = T в каждом месяце / количество всех веб-сайтов в этом месяце.

Я думал, что шаги будут выглядеть примерно так:

aggregate(sum(df$click_tracking = TRUE), by=list(Category=df$Date), FUN = sum)
as.data.frame(table(Date))

Затем каким-то образом проведем l oop через Date и разделим две переменные, которые были бы сгруппированы по Date. Как мне этого добиться? Большое спасибо!

Ответы [ 2 ]

2 голосов
/ 28 февраля 2020

Если мы создаем столбец, тогда сгруппируйте по дате и получите sum из click_tracking (при условии, что это логический столбец - ИСТИНА / ЛОЖЬ) в mutate

library(dplyr)
df %>%
   group_by(Date) %>%
   mutate(countTRUE = sum(click_tracking))

Если столбец factor, преобразуйте в logical с as.logical

df %>%
   group_by(Date) %>%
   mutate(countTRUE = sum(as.logical(click_tracking)))

Если необходимо создать итоговый вывод

df %>%
  group_by(Date) %>%
  summarise(countTRUE = sum(click_tracking))

In код ОП, = (присвоение) используется вместо == в sum(df$click_tracking = TRUE), и нет необходимости проводить сравнение по логическому столбцу

aggregate(cbind(click_tracking = as.logical(click_tracking)) ~ Date, FUN = sum)
1 голос
/ 28 февраля 2020

Это создаст долю сайтов с отслеживанием кликов (из всех сайтов) в месяц.

aggregate(data=df, click_tracking ~ Date, mean)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...