Мое намерение состоит в создании переменной на основе значений двух числовых. Я не написал никаких пользовательских функций в R и вам нужна помощь при запуске.Создать номинальную переменную из нескольких столбцов R
Dataset:
Мой набор данных имеет более 3k магазинов, но создал воспроизводимый пример первых 10 строк. Поставки в день недели показывают общий объем за этот день в течение года. Store_num
представляет номер магазина и Total
показывает общие поставки для магазина в течение года.
Я хочу, чтобы дни доставки были созданы в переменной под названием Del_Sch
со следующими неравенствами. Если первое условие TRUE (50-100%), то создайте переменную с именем столбца. Если FALSE, проверьте второе условие и создайте переменную со всеми именами столбцов между 32-50% и т. Д. Если дней больше 20%, не учитываются преобладающие дни доставки.
-Возврат в день между 50-100% от общего количества.
-VOLUME в день между 32-50% от общего
-VOLUME в день между 25-32% от общего количества.
-Возврат в день между 20-25% от общего количества.
-Возврат в течение дня менее 20% от общего количества.
Воспроизводимый Пример:
Store_Num <- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
#Total deliveries made per week
Sun_Del <- c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA)
Mon_Del <- c(10, 50, 51, 7, 80, 97, 21, 49, 30, 3)
Tue_Del <- c(7, NA, 2, 50, 5, 56, 1, 4, 35, 52)
Wed_Del <- c(49, 51, 1, 4, 51, 16, 2, 2, 1, 1)
Thu_Del <- c(3, 2, 47, 7, 40, 2, 6, 5, 1, 7)
Fri_Del <- c(50, 49, 3, 51, 53, 86, 9, 52, 25, 52)
Sat_Del <- c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA)
Total <- c(119, 152, 104, 119, 229, 257, 39, 112, 92, 115)
#Single dataset
Schedule <- data.frame(Store_Num, Sun_Del, Mon_Del, Tue_Del,
Wed_Del, Thu_Del, Fri_Del, Sat_Del, Total)
Schedule
Store_Num Sun_Del Mon_Del Tue_Del Wed_Del Thu_Del Fri_Del Sat_Del Total
1 1 NA 10 7 49 3 50 NA 119
2 2 NA 50 NA 51 2 49 NA 152
3 3 NA 51 2 1 47 3 NA 104
4 4 NA 7 50 4 7 51 NA 119
5 5 NA 80 5 51 40 53 NA 229
6 6 NA 97 56 16 2 86 NA 257
7 7 NA 21 1 2 6 9 NA 39
8 8 NA 49 4 2 5 52 NA 112
9 9 NA 30 35 1 1 25 NA 92
10 10 NA 3 52 1 7 52 NA 115
Желаемого выход:
Store_Num Sun_Del Mon_Del Tue_Del Wed_Del Thu_Del Fri_Del Sat_Del Total Del_Sch
1 1 NA 10 7 49 3 50 NA 119 WF
2 2 NA 50 NA 51 2 49 NA 152 MWF
3 3 NA 51 2 1 47 3 NA 104 MTh
4 4 NA 7 50 4 7 51 NA 119 TF
5 5 NA 80 5 51 40 53 NA 229 MWF
6 6 NA 97 56 16 2 86 NA 257 MTF
7 7 NA 21 1 2 6 9 NA 39 M
8 8 NA 49 4 2 5 52 NA 112 MF
9 9 NA 30 35 1 1 25 NA 92 MTF
10 10 NA 3 52 1 7 52 NA 115 TF
Вы правы, я допустил ошибку в дни доставки. Кроме того, я получил ошибку, применяя эту функцию: Ошибка: не удалось найти функцию «%>%» –
Вам нужно будет установить 'dplyr' и' tidyr': 'install.packages (" dplyr ")' 'install.packages ("tidyr") '. Труба '%>%' от magrittr, но должна поставляться с dplyr – jeremycg
У меня не было установленных пакетов, а не функция. Я собираюсь отметить эту проблему как решение, но в моем наборе данных было наблюдение со всеми менее чем 20%, которые не получили ярлык. Я вручную обнаружил, что есть пробел. Как я могу обозначить его как «Нет», если все составляют <20% от общего числа? –