SAS IML 中的值匹配
假设我有一个向量 x 和一个要匹配的值 v 的(短)列表。我想找到 x 的哪些元素出现在 v 中。例如,如果
x = {10 11 12 13 12 13 14 15};
v = {12 13};
我想获取向量 {3 4 5 6}
,这些元素就是 x 的值为 12 或 13 的元素是否有一种简单的方法可以做到这一点,而无需对 v 的所有元素进行显式循环?
Say I have a vector x, and a (short) list of values v to match against. I want to find which elements of x are present in v. For example, if
x = {10 11 12 13 12 13 14 15};
v = {12 13};
I want to obtain the vector {3 4 5 6}
, these being the elements of x whose values are either 12 or 13. Is there a simple way to do this, without having to do an explicit loop over all the elements of v?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我假设您在 PROC IML 中。
使用 XSECT 函数查找两个集合的交集:(
如果您想要差异,请使用 SETDIF)。
顺便说一句,有一个专门讨论 SAS/IML 问题的论坛:
http://support.sas.com/forums/forum.jspa?forumID=47
I assume you are in PROC IML.
Use the XSECT function to find the intersection of the two sets:
(and if you want the difference, use SETDIF).
BTW, there is a discussion forum dedicated to soley SAS/IML questions:
http://support.sas.com/forums/forum.jspa?forumID=47