SAS IML 中的值匹配

发布于 2024-10-17 00:49:31 字数 231 浏览 6 评论 0原文

假设我有一个向量 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

赏烟花じ飞满天 2024-10-24 00:49:31

我假设您在 PROC IML 中。
使用 XSECT 函数查找两个集合的交集:(

z = xsect(x,v);

如果您想要差异,请使用 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:

z = xsect(x,v);

(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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文