мне трудно решить эту проблему.Я собираюсь объяснить это лучше всего на основе примера, давайте посмотрим на данные ниже:
order type_a type_b type_c type_d
1 1 0 50 10 0
2 2 10 0 0 80
3 3 15 0 0 35
4 4 0 0 30 0
5 5 0 20 40 0
и dput
:
data <- structure(list(order = c(1, 2, 3, 4, 5), type_a = c(0, 10, 15,
0, 0), type_b = c(50, 0, 0, 0, 20), type_c = c(10, 0, 0, 30,
40), type_d = c(0, 80, 35, 0, 0)), .Names = c("order", "type_a",
"type_b", "type_c", "type_d"), row.names = c(NA, -5L), class = "data.frame")
Мы можем видеть, чтоВ первом столбце указан номер заказа, в остальных столбцах указано, что принадлежит к этому заказу.Кроме того, если столбец type_ * заполнен 0, то он не имеет значения.
Я хотел бы создать новый столбец, который определяет группы на основе столбцов «описание заказа» -> type_ *.Например, для порядка 1 и порядка 5 у нас есть одинаковые столбцы type_ *, заполненные без значений 0, поэтому они принадлежат одной и той же группе, то же самое относится к порядку 2 и 3 и т. Д.
Мой окончательный результат должен выглядетьвот так:
order type_a type_b type_c type_d group
1 1 0 50 10 0 group_1
2 2 10 0 0 80 group_2
3 3 15 10 0 35 group_2
4 4 0 0 30 0 group_3
5 5 0 20 40 0 group_1
Только для вашей информации, в моих реальных данных у меня больше 4 столбцов type_ * -> их около 10-15!
Спасибо запомощь!