Немного сложного вопроса. Мне нужен метод, чтобы систематически группировать, упорядочивать и создавать новые строки данных. Существует три уровня стратификации (c1, c2, c3, c4) и значение «оценка» для каждой итерации стратификации. Это немного сложно сформулировать, поэтому я дам вам таблицы HAVE и WANTТаблица данных реструктуризации/ввод новых строк с пустыми значениями
Ниже приведены таблицы данных для облегчения манипуляций.
data HAVE;
input CLASS $ FUR_COLOR $ FAMILY $ SPECIES $ NO_IN_CAPTIVITY;
datalines;
MAMMAL BLACK WHALE KILLER_WHALE 2
MAMMAL BLACK FELINE PUMA 3
MAMMAL BLACK APE CHIMP 5
MAMMAL BLACK APE GORILLA 3
MAMMAL BLACK APE BONOBO 3
MAMMAL RED APE ORANGUTAN 2
;
RUN;
data WANT;
input C1 $ C2 $ C3 $ C4;
datalines;
MAMMAL . BLACK .
MAMMAL WHALE KILLER_WHALE 2
MAMMAL . BLACK .
MAMMAL FELINE PUMA 3
MAMMAL . BLACK .
MAMMAL APE CHIMP 5
MAMMAL APE GORILLA 3
MAMMAL APE BONOBO 3
MAMMAL . RED .
MAMMAL APE ORANGUTAN 2
;
RUN;
Я не понимаю, почему строки 'C D G 3' и' C D H 3' не имеют 'D' только грести перед ними, не могли бы вы объяснить, пожалуйста? –
'CDG3' и' CDH3' обе имеют значение 'D' для' C2'. Они оба сворачиваются к 'C', который переворачивается до' D'. Чтобы контрастировать, «CEI2» разделяет значение «C» с другими упомянутыми значениями, но значение 'C' сворачивается до' E', поэтому в отличие от других он получает новую строку. –
Хмм ... если бы вы придумали какой-нибудь (вербальный или псевдокодовый) алгоритм, нам было бы легче помочь вам. –