Как заменить значения столбца для когортного анализа

Я очень плохо знаком с использованием R. Я искал по этому поводу, но не смог найти никаких указателей.

Я делаю когортный анализ, и данные в Месяце 1 - это число новых пользователей, которые зарегистрировались в этом конкретном месяце. Месяц2 - это количество пользователей, которые продолжили со времени регистрации в предыдущем месяце.

У меня есть набор данных следующим образом

Month_Start_Date   Month1   Month2   Month3  Month4   Month5   Month6
2010-01-01           10        12       11      9       3        15
2010-02-01           10         9       11      9       3        15
2010-03-01           10         9        7      9       3        15
2010-04-01           10         7        5      6       3        15
2010-05-01           10         8        6      3       4        15

Я хотел бы, чтобы мои данные были в следующем формате:

Month_Start_Date   Month1   Month2   Month3  Month4   Month5   Month6
2010-01-01           10         0       0       0       0        0
2010-02-01           10         9       0       0       0        0
2010-03-01           10         9       7       0       0        0
2010-04-01           10         7       5       6       0        0
2010-05-01           10         8       6       3       4        0

Мои основные данные содержат данные за 2008 год. Я выполняю фильтрацию только с 2010 года. Следовательно, я хотел бы, чтобы месяц2, месяц3, месяц4, месяц5 равнялся 0 для 2010-01-01, а месяц3, месяц4, месяц5 равнялся 0 для 2010-02 -01

1 ответ

Решение

Кажется, ты хочешь upper.tri установить значения на ноль. Начиная с

> df
#   Month_Start_Date Month1 Month2 Month3 Month4 Month5 Month6
# 1       2010-01-01     10     12     11      9      3     15
# 2       2010-02-01     10      9     11      9      3     15
# 3       2010-03-01     10      9      7      9      3     15
# 4       2010-04-01     10      7      5      6      3     15
# 5       2010-05-01     10      8      6      3      4     15

мы можем заменить верхний треугольник нулями с

> df[-1][upper.tri(df[-1])] <- 0
> df
#   Month_Start_Date Month1 Month2 Month3 Month4 Month5 Month6
# 1       2010-01-01     10      0      0      0      0      0
# 2       2010-02-01     10      9      0      0      0      0
# 3       2010-03-01     10      9      7      0      0      0
# 4       2010-04-01     10      7      5      6      0      0
# 5       2010-05-01     10      8      6      3      4      0
Другие вопросы по тегам