Я бы хотел упорядочить фрейм данных по числовому вектору и вектору символов, чтобы можно было удалить дубликаты в столбце «Код», сохранив записи с наибольшим значением в столбце «Значение». Однако, если в моем столбце «Категория» есть «YS» или «YS1», я хочу сохранить эти записи, даже если значение не является наибольшим числом
Вот пример набора данных:
Code <- c(2,2,3,5,3,7,8)
Value <- c(17,18,35,25,67,34,2)
Category <- c("YS", "DW", "YS1", "OS", "OS", "OS1", "GD")
Dataset <- data.frame(Code, Value, Category)
Code Value Category
1 2 17 YS
2 2 18 DW
3 3 35 YS1
4 5 25 OS
5 3 67 OS
6 7 34 OS1
7 8 2 GD
Когда я упорядочиваю данные по коду (по возрастанию) и по значению (по убыванию) и удаляю повторяющиеся записи по коду, моя запись "YS" для кода = 2 не сохраняется, поскольку она имеет меньшее значение.
order_data <- Dataset[order(Dataset$Code, -Dataset$Value),]
dataset_nodup <- order_data[!duplicated(order_data$Code),]
Code Value Category
2 2 18 DW
5 3 67 OS
4 5 25 OS
6 7 34 OS1
7 8 2 GD
Я бы хотел сначала упорядочить по моему столбцу Category, а затем по столбцу Value, чтобы мои записи "YS" и "YS1" были перечислены первыми. Я пробовал следующее, но это не работает.
order_data <- Dataset[order(Dataset$Code, -Dataset$Category, -Dataset$Value),]
Я бы хотел, чтобы мой вывод выглядел так:
Code Value Category
1 2 17 YS
2 3 67 YS1
3 5 25 OS
4 7 34 OS1
5 8 2 GD