У меня есть набор данных с 3 столбцами: имя, система, идентификатор пользователя.Я хочу посчитать, сколько раз человек появляется в отчете, но не считать их, если это разные люди с одинаковыми именами.Различие осуществляется по полю UserID и только в пределах одной системы.Если одно имя имеет несколько строк с одной и той же системой и другим идентификатором пользователя, то все наблюдения с этим именем будут помечены для просмотра.Для этого набора данных я хотел бы видеть вывод ниже.
Name System UserID
John Doe Sys1 [blank]
John Doe Sys1 AB1234
John Doe Sys2 AB2345
Jane Doe Sys1 AA2345
Jane Doe Sys1 AA23456
Jane Doe Sys2 AA2345
Joe Smith Sys1 JS963
Joe Smith Sys2 JS741
Name Count System Follow-up
John Doe 1 Sys1 - Yes
John Doe 1 Sys1 - AB1234 Yes
John Doe 1 Sys2 - AB2345 Yes
Jane Doe 1 Sys1 - AA2345 Yes
Jane Doe 1 Sys1 - AA23456 Yes
Jane Doe 1 Sys2 - AA2345 Yes
Joe Smith 2 Sys1 - JS963, Sys2 - JS741 No
Любая помощь будет принята с благодарностью!
Код, который я имею ниже.В настоящее время он просто выполняет подсчет имен в общем и не знает, как добавить условия.
PROC SQL;
CREATE TABLE Sorted_Master_Original AS
SELECT Name,
COUNT(Name) AS Total,
System,
UserID,
CATX(' - ',System,UserID) AS SystemID
FROM Master_Original
WHERE Name <> ""
GROUP BY Name;
QUIT;
DATA TESTDATA.Final_Listing;
LENGTH SystemsAccessed $200.;
DO UNTIL (last.Name);
SET Sorted_Master_Original;
BY Name NOTSORTED;
SystemsAccessed=CATX(', ',SystemsAccessed,SystemID);
END;
DROP System SystemID;
RUN;