gpt4 book ai didi

sas - 列表 SAS 中单词/var 的位置

转载 作者:行者123 更新时间:2023-12-04 20:36:41 24 4
gpt4 key购买 nike

这可能是一个相当简单的问题,但我是 SAS 的新手,即使在谷歌研究过这个问题后也一无所知。

我有一个宏变量 -

%let list = 12AUG2013 13AUG2013 15AUG2013 16AUG2014 09SEPT2014;

我需要得到以下东西-

a) 列表中的总字数:在 R 中,这将是长度(列表)。但在 SAS 中,长度计算每个字符。 COUNTW 不起作用。反正我能做到吗?

b) 找到第 i 个单词:如果我需要这个列表中的第三个元素,我会在 R 中说 list[3]。我怎么能在 SAS 中做到这一点?

c) 查找元素的位置:假设我需要知道 16AUG2014 在列表变量中的哪个位置,我怎样才能得到它?

感谢所有的帮助!

最佳答案

当您询问宏变量时,它与使用 SAS 数据步函数略有不同。您的问题提供了一个有用的示例,说明它们有何不同。一些数据步函数具有宏函数等效项 %SCAN , %SUBSTR等其他人将需要使用%SYSFUNC ,它允许将大多数 SAS 数据步函数转换为宏函数。

所以,引用你的例子:

%let 列表 = 12AUG2013 13AUG2013 15AUG2013 16AUG2014 09SEPT2014;

%let list_numwords = %sysfunc(countw(&list));/* 这个例子展示了 SYSFUNC 的使用 */
%let list_word3 = %scan(&list,3);/* 这些例子展示了 SCAN 和 INDEX 的使用,内置宏函数*/
%let list_pos16AUG2014 = %index(&list,16AUG2014);

该代码创建新的宏变量,分别存储问题 a、b 和 c* 的答案。

* 如果您需要16AUG2014的字数(即 4),那么这有点困难,因为我认为 SAS 中没有用于此的字符串函数。这将涉及使用 COUNT 的组合和 %SUBSTR .

关于sas - 列表 SAS 中单词/var 的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23538055/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com