У меня есть фрейм данных следующим образом:
d <- data.frame(
shop=c('A','A','A','A','A','B','B','B','C','C','C','C','D','E','E'),
product=c(1:5,1:3,1:4,1,1:2),
price=c(16.83, 12.21, 9.99, 3.99, 1.00,
19.50, 6.42, 1.89,
13.95, 12.50, 7.87, 0.79,
11.99,
22.80, 15.99) )
Данные представляют цены товаров, имеющихся в магазинах, причем товары пронумерованы в обратном порядке цен в каждом магазине. Я бы хотел узнать о самых дорогих продуктах в магазинах , а также о наименее дорогих продуктах (например, среднее значение, распределение, максимальная цена). Имея это в виду, я хочу изменить масштаб нумерации товаров, чтобы во всех магазинах самый дорогой номер 1, а наименее дорогой номер 10 (с дробными номерами товаров просто отлично).
Вещи, которые я знаю:
- Как масштабировать один вектор номеров товаров, используя максимум
и минимальные значения
- Как получить максимальный номер товара по магазинам:
aggregate(d[, 2], list(d$shop), max)
Но я не вижу, как соединить части, чтобы, например, номера продуктов для магазина C
были, от самых дорогих до наименее дорогих, c(1,4,7,10)
.