Мой Список Данных Набор данных: Наименование Марка Math1 Math2 Math3 ----------------------------- --------Выходное наблюдение, если соответствует критериям
Justin AA1 1 0 1
Justin BB1 1 1 1
Justin BA1 0 1 0
Justin BC2 0 0 1
и вот код SAS для его создания
DATA Student1;
INPUT Name $ Mark $ Math1 Math2 Math3;
DATALINES;
Justin AA1 1 0 1
Justin BB1 1 1 1
Justin BA1 0 1 0
Justin BC2 0 0 1
;
Я хотел бы оценить Math1 и выводить метку рядом с ней, если 1 встречается, однако потому что эта позиция использовалась в Math1, она не может быть снова использована в Math2, т. е. выход Justin - AA1 для Math1, BB1 для Math2 (потому что именно там находится первый столбец) и BC2 для Math3, потому что хотя у нас есть 1 в одной строке с AA1 и BB1, эти две метки уже использовались в var Math1 и Math2.
Это то, что набор выходных данных должен выглядеть
data Student2;
input name $ Math1 $ Math2 $ Math3 $;
datalines;
Justin AA1 BB1 BC2
;
Могу ли я сделать это, используя массивы?
Это похоже на проблему, связанную с управлением набором входных данных перед выдачей набора данных решения. Если вы можете опубликовать более точное представление о вашем наборе входных данных, можно найти решение. Не могли бы вы включить шаг данных с datalines, чтобы можно было протестировать решение? –
Есть ли обязательный заказ от math1 до math3? например, если вторая строка «Justin BB1 0 0 1», то мы пропустим эту строку или выведем bb1 и пропустим четвертую строку bc2, поскольку math3 был использован? –
Правильно, Робби пропускаем строку, потому что 1 - индикатор, в этом случае 1 находится в столбце три, поэтому мы выводим знак в четвертой строке. Знак должен быть уникальным, т. Е. Не может выводиться дважды - это сложная часть – Makoto