---
title: Express intro to evExpress package
tags:  #[第12回大阪sas勉強会]  
author: [森岡裕[SASユーザー総会世話人]](https://convert.docswell.com/user/6484025)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/9J2153357R.jpg?width=480
description: Express intro to evExpress package by 森岡裕[SASユーザー総会世話人]
published: January 27, 26
canonical: https://convert.docswell.com/s/6484025/K6EQQL-2026-01-27-074731
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/9J2153357R.jpg)

Disclaimer
Disclaimer
I&#039;m not a native speaker but I&#039;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.


# Page. 2

![Page Image](https://bcdn.docswell.com/page/DEYZK1167M.jpg)

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


# Page. 3

![Page Image](https://bcdn.docswell.com/page/VJN3R2Q1J8.jpg)

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


# Page. 4

![Page Image](https://bcdn.docswell.com/page/YE99M1DYE3.jpg)

Pytanie
Problem Statement
SAS expressions are provided in the form of text strings, say:
&quot;A and B or C&quot;,
&quot;A * B + C&quot;, or
&quot;42 = A + B + C&quot;,
where A, B , and C are variables from some data set HAVE.
Evaluate those expressions using vales from HAVE.


# Page. 5

![Page Image](https://bcdn.docswell.com/page/GE89L43K7D.jpg)

Przykład
Problem Statement - Example
code
A + B
A = B
A or B
A
17
100
1
B
42
101
0


# Page. 6

![Page Image](https://bcdn.docswell.com/page/LELWL6VPJR.jpg)

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);


# Page. 7

![Page Image](https://bcdn.docswell.com/page/4JM9M5G2EW.jpg)

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);


# Page. 8

![Page Image](https://bcdn.docswell.com/page/PJRGV3Z5E9.jpg)

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);


# Page. 9

![Page Image](https://bcdn.docswell.com/page/PEXXZ49XEX.jpg)

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);


# Page. 10

![Page Image](https://bcdn.docswell.com/page/3EKW8ZP9ED.jpg)

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);


# Page. 11

![Page Image](https://bcdn.docswell.com/page/L7312DX9J5.jpg)

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);


# Page. 12

![Page Image](https://bcdn.docswell.com/page/87DXZP28EG.jpg)

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);


# Page. 13

![Page Image](https://bcdn.docswell.com/page/VJPPDN1WJ8.jpg)

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”


# Page. 14

![Page Image](https://bcdn.docswell.com/page/2EV21KY9EQ.jpg)

Gdzie szukać pakietu?
github.com/yabwon/SAS_PACKAGES


# Page. 15

![Page Image](https://bcdn.docswell.com/page/57GR2Q94EL.jpg)

Gdzie szukać pakietu?
github.com/SASPAC/evexpress


# Page. 16

![Page Image](https://bcdn.docswell.com/page/4EQVPKWRJP.jpg)

Gdzie szukać pakietu?
github.com/SASPAC/evexpress


# Page. 17

![Page Image](https://bcdn.docswell.com/page/KJ4MYPKQE1.jpg)

Gdzie szukać pakietu?
github.com/SASPAC/evexpress


# Page. 18

![Page Image](https://bcdn.docswell.com/page/LE1869XL7G.jpg)

Gdzie szukać pakietu?
github.com/SASPAC/evexpress


# Page. 19

![Page Image](https://bcdn.docswell.com/page/GEWZWQNQE2.jpg)

Kod
The Code
%loadPackage(evExpress)


# Page. 20

![Page Image](https://bcdn.docswell.com/page/47Z15W33J3.jpg)

Kod
The Code
%loadPackage(evExpress)
code
(x &gt; 1) and c=&quot;A&quot;
x &lt; 1 and (9 &lt; y &lt; 13)
x &lt; 1 or (81 &lt; 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


# Page. 21

![Page Image](https://bcdn.docswell.com/page/YJ6L9GXZEV.jpg)

Kod
The Code
%loadPackage(evExpress)
code
(x &gt; 1) and c=&quot;A&quot;
x &lt; 1 and (9 &lt; y &lt; 13)
x &lt; 1 or (81 &lt; 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)


# Page. 22

![Page Image](https://bcdn.docswell.com/page/GJ51NVX974.jpg)

Kod
The Code
%loadPackage(evExpress)
code
(x &gt; 1) and c=&quot;A&quot;
x &lt; 1 and (9 &lt; y &lt; 13)
x &lt; 1 or (81 &lt; 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)


# Page. 23

![Page Image](https://bcdn.docswell.com/page/9E2153X5JR.jpg)

Kod
The Code
%loadPackage(evExpress)
code
(x &gt; 1) and c=&quot;A&quot;
x &lt; 1 and (9 &lt; y &lt; 13)
x &lt; 1 or (81 &lt; 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;


# Page. 24

![Page Image](https://bcdn.docswell.com/page/D7YZK186JM.jpg)

Kod
The Code
%loadPackage(evExpress)
code
(x &gt; 1) and c=&quot;A&quot;
x &lt; 1 and (9 &lt; y &lt; 13)
x &lt; 1 or (81 &lt; 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;


# Page. 25

![Page Image](https://bcdn.docswell.com/page/VEN3R291E8.jpg)

Kod
The Code
%loadPackage(evExpress)
code
(x &gt; 1) and c=&quot;A&quot;
x &lt; 1 and (9 &lt; y &lt; 13)
x &lt; 1 or (81 &lt; 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;


# Page. 26

![Page Image](https://bcdn.docswell.com/page/Y799M12Y73.jpg)

Ź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&amp;L=SAS-L&amp;P=R18571


# Page. 27

![Page Image](https://bcdn.docswell.com/page/G789L45KJD.jpg)

ありがとうございます
dziękuję bardzo


