OK, проверить этот кадр данных ...Как оценивать группы в R?
customer_name order_dates order_values
1 John 2010-11-01 15
2 Bob 2008-03-25 12
3 Alex 2009-11-15 5
4 John 2012-08-06 15
5 John 2015-05-07 20
Допустит, я хочу, чтобы добавить переменный порядок, который занимает самое высокое значение порядка, по имени, по максимальной дате заказа, используя дату последнего заказа на галстук. Таким образом, в конечном счете, данные должны выглядеть следующим образом:
customer_name order_dates order_values ranked_order_values_by_max_value_date
1 John 2010-11-01 15 3
2 Bob 2008-03-25 12 1
3 Alex 2009-11-15 5 1
4 John 2012-08-06 15 2
5 John 2015-05-07 20 1
Где разовый заказ каждый получает 1, и все последующие заказы оценивается на основе стоимости, а галстук выключатель дата последнего заказа становится приоритетной задача. В этом примере заказ Джона 8/6/2012 получает ранг №2, потому что он был размещен после 11/1/2010. Порядок 5/7/2015 - 1, потому что он был самым большим. Таким образом, даже если этот ордер был поставлен 20 лет назад, он должен быть рангом №1, потому что это значение самого высокого порядка Джона.
Кто-нибудь знает, как я могу это сделать в R? Где я могу ранжировать в группе заданных переменных в кадре данных?
Благодарим за помощь!
@akrun, а что же касается брелка для ценностей? –
Вот код для создания фрейма данных в случае, если это помогает: customer_name <- c («John», «Bob», «Alex», «John», «John»); order_dates <- as.Date (c ('2010-11-1', '2008-3-25', '2009-11-15', '2012-8-6', '2015-5-7')); order_values <- c (15,12,5,15,20); test_data <- данные.рамка (CUSTOMER_NAME, order_dates, order_values); –
@SenorO Пример OP должен быть более сложным для тестирования. Кроме того, 'dense_rank' из' dplyr' является одним из способов для тай-брейкера – akrun