Как заменить значения столбца для когортного анализа
Я очень плохо знаком с использованием 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