извините, если это избыточно в другом сообщении, но не удалось найти ответ при поиске.Группировка наблюдений с помощью переменной
У меня есть длинный список лекарств, а также несколько препаратов несколько доз, например:
Medication A 3 mg tablet
Medication A 5 mg tablet
Medication B 3 mg tablet
Medication B 5 mg tablet
Я пытался писать код SAS, чтобы создать третью переменную (newmed), который будет присвоить новое имя к каждому лекарственному средству без дозы (например, все дозы лекарств A будут называться MedA, все дозы лекарств B будут называться MedB). Вот мой код:
data medsorted;
SET library.meds;
if DISCHARGE_MEDICATION_NAME="med1_7.5_mg_tablet" THEN newmed= "med1";
if DISCHARGE_MEDICATION_NAME="med1_6_mg_tablet" THEN newmed= "med1";
if DISCHARGE_MEDICATION_NAME="med2_100_mg/ml_subcutaneous_syringe" THEN newmed= "med2";
if DISCHARGE_MEDICATION_NAME="med2_120_mg/ml_subcutaneous_syringe" THEN newmed = "med2";
/*etc - the list of med goes on*/
run;
Я также попытался это с помощью «или» заявления, итерация нового МЕД имени по всему списку, если заявления. В любом случае, программа запускается, но новый набор данных не поддерживает никаких записей в новом столбце - он пуст.
Что я делаю неправильно?
Спасибо!
Ваши данные в первой части не выравнивают с тем, что вы проверяете в 'DISCHARGE_MEDICATION_NAME'. Можете ли вы публиковать фактические значения в этой переменной? – DomPazz
Посмотрите на функцию сканирования, чтобы извлечь первую часть названия лекарственного средства. Если ваше название препарата больше, это не сработает. – Reeza
@ Reeza, согласен. Вот почему я спросил, как выглядят ценности. – DomPazz