>100 Views
January 27, 26
スライド概要
SAS言語を中心として,解析業務担当者・プログラマなのコミュニティを活性化したいです
Disclaimer Disclaimer I'm not a native speaker but I'm doing my best. If I say something that may be interpreted as either negative or positive (e.g. a joke vs. an offense) I always, always, mean the positive.
Express introduction to evExpress sas package 大阪 SAS 勉強会 - 第 12 回 - talk 15 Bartosz Jabłoński (バートシュ ヤブウォンスキー) yabwon gmail . com linkedin.com/in/yabwon 2026 年 1 月 28 日 Osaka, Japan
Kim jest Bart? Bart Jabłoński,PhD yabwon (2022) Warsaw University of Technology SASing since 2009 Experis Manpower Group www.experis.com Takeda Pharmaceutical www.takeda.com Polish SAS Users Group www.polsug.com
Pytanie Problem Statement SAS expressions are provided in the form of text strings, say: "A and B or C", "A * B + C", or "42 = A + B + C", where A, B , and C are variables from some data set HAVE. Evaluate those expressions using vales from HAVE.
Przykład Problem Statement - Example code A + B A = B A or B A 17 100 1 B 42 101 0 result result = EVALUATE(code);
Przykład Problem Statement - Example code A + B A = B A or B A 17 100 1 B 42 101 0 result 59 result = EVALUATE(code);
Przykład Problem Statement - Example code A + B A = B A or B A 17 100 1 B 42 101 0 result 59 0 result = EVALUATE(code);
Przykład Problem Statement - Example code A + B A = B A or B A 17 100 1 B 42 101 0 result 59 0 1 result = EVALUATE(code);
Przykład Problem Statement - Example code A + B A = B A or B A 17 100 1 B 42 101 0 result 59 0 1 result = EVALUATE(code);
Przykład Problem Statement - Example code A + B A = B A or B A 17 100 1 B 42 101 0 result 59 0 1 result = EVALUATE(code);
Przykład Problem Statement - Example code A + B A = B A or B A 17 100 1 B 42 101 0 result 59 0 1 result = EVALUATE(code);
Pakiet? „The wolf Is there a SAS package for this job? is s ated and the she e p is Of course there is! The evExpress package.. the OR spaa s cka way to s ges har e LY ? by B art Jablo n ski who le”
Gdzie szukać pakietu? github.com/yabwon/SAS_PACKAGES
Gdzie szukać pakietu? github.com/SASPAC/evexpress
Gdzie szukać pakietu? github.com/SASPAC/evexpress
Gdzie szukać pakietu? github.com/SASPAC/evexpress
Gdzie szukać pakietu? github.com/SASPAC/evexpress
Kod The Code %loadPackage(evExpress) code (x > 1) and c="A" x < 1 and (9 < y < 13) x < 1 or (81 < y*y) (3 - sqrt(x+y)) 12 + sum(of x--y) sin(x)**2 + cos(x)**2 X 3 -3 3 5 3 -3 Y 11 17 11 11 9 11 C A B C D E F
Kod The Code %loadPackage(evExpress) code (x > 1) and c="A" x < 1 and (9 < y < 13) x < 1 or (81 < y*y) (3 - sqrt(x+y)) 12 + sum(of x--y) sin(x)**2 + cos(x)**2 X 3 -3 3 5 3 -3 Y 11 17 11 11 9 11 C A B C D E F %evExpressDS(have,exp=code,want=work.want)
Kod The Code %loadPackage(evExpress) code (x > 1) and c="A" x < 1 and (9 < y < 13) x < 1 or (81 < y*y) (3 - sqrt(x+y)) 12 + sum(of x--y) sin(x)**2 + cos(x)**2 X 3 -3 3 5 3 -3 Y 11 17 11 11 9 11 C A B C D E F %evExpressDS(have,exp=code,want=work.want)
Kod The Code %loadPackage(evExpress) code (x > 1) and c="A" x < 1 and (9 < y < 13) x < 1 or (81 < y*y) (3 - sqrt(x+y)) 12 + sum(of x--y) sin(x)**2 + cos(x)**2 X 3 -3 3 5 3 -3 Y 11 17 11 11 9 11 C A B C D E F data want; set have curobs=curobs indsname=indsname; value = evExpress(code, indsname, curobs); run;
Kod The Code %loadPackage(evExpress) code (x > 1) and c="A" x < 1 and (9 < y < 13) x < 1 or (81 < y*y) (3 - sqrt(x+y)) 12 + sum(of x--y) sin(x)**2 + cos(x)**2 X 3 -3 3 5 3 -3 Y 11 17 11 11 9 11 C A B C D E F data want; set have curobs=curobs indsname=indsname; value = evExpress(code, indsname, curobs); run;
Kod The Code %loadPackage(evExpress) code (x > 1) and c="A" x < 1 and (9 < y < 13) x < 1 or (81 < y*y) (3 - sqrt(x+y)) 12 + sum(of x--y) sin(x)**2 + cos(x)**2 X 3 -3 3 5 3 -3 Y 11 17 11 11 9 11 C A B C D E F data want; set have curobs=curobs indsname=indsname; value = evExpress(code, indsname, curobs); run;
Źródła Bartosz Jabłoński, ”SAS packages - the way to share (a how to) - extended”, SAS GF 2020 Proceedings (updated version as of November 2025), https://github.com/yabwon/SAS_PACKAGES/tree/master/SPF/Documentation Bartosz Jabłoński, evExpress packages documentation, (as of January 2026), https://github.com/SASPAC/evexpress Rick Langston, ”Submitting SAS Code On The Side”, SAS Global Forum 2013 Proceedings, 032-2013, https://support.sas.com/resources/papers/proceedings13/032-2013.pdf Quentin McMullen, ”A Close Look at How DOSUBL Handles Macro Variable Scope”, SAS Global Forum 2020 Proceedings, 4958-2020, https://support.sas.com/resources/papers/proceedings13/032-2013.pdf Steve Prust, ”Using the full power of SAS to resolve Algorithmic MedDRA SMQs”, PHUSE EU 2025 Proceedings, SM12, https://www.lexjansen.com/phuse/2025/SM/PAP_SM12.pdf Daniel M. Himmel, ”Parsing a Compound Boolean Condition to Evaluate Its Clauses Individually and in Logical Groups”, NESUG 1990 Proceedings, https://www.lexjansen.com/nesug/nesug90/NESUG90042.pdf Bartosz Jabłoński et al., ”Yet another reason to love hash tables”, SAS-L discussion group archive, 2019-07-04, https://listserv.uga.edu/scripts/wa-UGA.exe?A2=ind1907A&L=SAS-L&P=R18571
ありがとうございます dziękuję bardzo