BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
Amy_W
Calcite | Level 5

Hi,

I have two vectors like

A = {6,4,3,2,5,1};

B = {2,3};

I want to get another vector which contains the different elements comparing A and B. So I tried using SETDIF function.

C = setdif(A,B);

which returns the vector C is {1 4 5 6}. But, what I want is the not-sorted vector {6 4 5 1}.

Does anyone know how I could get the vector I want?

Thanks very much!

1 ACCEPTED SOLUTION

Accepted Solutions
IanWakeling
Barite | Level 11

I am thinking there should be a simpler solution than this:

C = remove( A, loc( ( (repeat(A, 1, nrow(B) )=t(B)) [ ,+] ) > 0) );

But I can't see any.   This works for your example, but note that it will retain any repeated values in A, so A={6,4,3,2,5,1,4} would return {6 4 5 1 4}.

View solution in original post

7 REPLIES 7
IanWakeling
Barite | Level 11

I am thinking there should be a simpler solution than this:

C = remove( A, loc( ( (repeat(A, 1, nrow(B) )=t(B)) [ ,+] ) > 0) );

But I can't see any.   This works for your example, but note that it will retain any repeated values in A, so A={6,4,3,2,5,1,4} would return {6 4 5 1 4}.

Amy_W
Calcite | Level 5

Thank you, IanWakeling. I have searched for hours yesterday before I posted the question here and I didn't find anything simpler than your solution here. Actually I would like to retain repeated values in the vector C so thanks again.

Rick_SAS
SAS Super FREQ

Use the ELEMENT function:

A = {6,4,3,2,5,1};

B = {2,3};

C = A[ loc(^element(A,B)) ];

See also Testing for equality of sets - The DO Loop

IanWakeling
Barite | Level 11

That's perfection. Thank you Rick.

Yao_W
Calcite | Level 5

Thank you, Rick. That is awesome.

Yao_W
Calcite | Level 5

I saw it. I subscribed your blog. Very helpful.

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

Register Now

From The DO Loop
Want more? Visit our blog for more articles like these.
Discussion stats
  • 7 replies
  • 3576 views
  • 3 likes
  • 4 in conversation