Ich habe mehrere Monate lang Data Mining betrieben und eine Technik entwickelt, um Informationen für ein Unternehmen herauszufinden. Ich habe Probleme damit, die Daten in eine angemessene und wertvolle Präsentation darüber zu bringen, wie man Informationen in SAS zusammenfasst. Ich habe 3 Fragen.Wie erstelle ich diese Case-Anweisungen in proc sql und appendiere ich, wenn Tabellen überschrieben werden?
1) Wie kann ich in proc sql sagen: "Wenn matched_by_t2> b2_c2 dann in neue Spalte hinzufügen "no bueno"
2) ist es eine Möglichkeit zu haben "(BC_C2/original_count)%" Wie würde ich Fügen Sie das Prozentzeichen ein
3) auch wenn ich diese Abfrage mehrmals für eine Liste von Datensätzen ausführen, wie bekomme ich diese neuen Tabellen mit dem gleichen Namen "e_data_unmatched" anhängen jedes Mal, wenn eine neue Tabelle erstellt und überschrieben wird Ich zeige zwei Zeilen jedes Mal, wenn das Programm ausgeführt wird, die Tabellen überschrieben werden, also möchte ich sicherstellen, dass jedes Mal, wenn die Schleife ausgeführt wird, die neuen Datensätze an die Tabelle anhängen, anstatt zu überschreiben 1http://imgur.com/bzLefXy
Vielen Dank!
proc sql;
create table wanted as
select t1.occurences as original_count
,t2.occurences as matched_by_T1
,t3.occurences as matched_by_T2
,t2.occurences+t3.occurences as B2_C2
,t4.occurences as not_matched
,t5.occurences as matched_by_t2
from (select count(*) as occurences from query_for_reports1) t1
,(select count(*) as occurences from query_for_reports1 where edsys is not null) t2
,(select count(*) as occurences from e_data_unmatched where ip is not null) t3
,(select count(*) as occurences from WORK.E_DAT_UNMATCHED where IpS= .) t4
,(select count(*) as occurences from work.Append_table13) t5
;
quit;
Mehrere Dinge sind hier falsch. Zum einen ist Ihre "Cast" -Zeile keine gültige SAS-Syntax (nicht mindestens in dieser proc sql). Zweitens scheint sie den Wert "no bueno" in einer Spalte zu haben, nicht in einer Spalte, die "no bueno" genannt wird. Zu guter Letzt haben Sie ihrem Code etwas hinzugefügt, ohne ihre Fehler zu korrigieren (z. B. doppelte 'matched_by_t2'-Spalten in select-Anweisung); Das bedeutet, dass dieser Code auch dann nicht funktioniert, wenn Ihre Ergänzungen korrekt waren. – user2877959
@ user2877959 gibt es eine Möglichkeit zu sagen, seine Antwort war richtig für 50% meiner Frage? Was ist Stapel Etikette? –
Ich würde sagen, dass diese Antwort für 33% Ihrer Frage richtig war, vorausgesetzt, er war in seinem Verständnis Ihres ersten Punktes richtig. Ich nehme an, dass die Stack-Philosophie darin besteht, dass Sie eine Antwort aufwerten, die nützlich ist und/oder eine angenommene Antwort als Antwort markieren, die Ihre Frage vollständig beantwortet. – user2877959