Я сталкиваюсь с этим достаточно часто, чтобы понять, что для этого должна быть хорошая идиома. Предположим, у меня есть data.frame с кучей атрибутов, включая «продукт». У меня также есть ключ, который переводит товары в марку + размер. Коды продуктов 1 -3 — Тайленол, 4 -6 — Адвил, 7 -9 — Байер, 10 -12 — Дженерик.
Какой самый быстрый (с точки зрения человеческого времени )способ закодировать это?
Я обычно использую вложенные ifelse
, если категорий 3 или меньше, и печатаю таблицу данных и объединяю ее, если категорий больше 3. Есть идеи получше? В Stata есть командаrecode
, которая довольно удобна для такого рода вещей, хотя я считаю, что она слишком сильно способствует смешиванию кода данных -.
dat <- structure(list(product = c(11L, 11L, 9L, 9L, 6L, 1L, 11L, 5L,
7L, 11L, 5L, 11L, 4L, 3L, 10L, 7L, 10L, 5L, 9L, 8L)),.Names = "product", row.names = c(NA,
-20L), class = "data.frame")