我有一系列每周变量来描述一个人的“状态”(从 2010 年第 1 周到 2012 年第 17 周)。
变量由下式给出:
y_1001, y_1002,...y1052, y1101, y1102,......y_1217
我这样定义变量的周期:
%let period = y_1001-1052 y_1101-y1148;
我也有一个治疗期作为开始日期和结束日期。我的挑战是在患者停止治疗后的一周内找到 y_ 变量给出的状态。
我对 SAS 不太熟悉,但我的想法是根据周计数器“选择”正确的 y_ 变量,例如通过计算自期间开始(2010 年第 1 周)到日期治疗结束。
我得到这样的治疗结束前几周
week_count = 1 + intck( 'week.2', '1JAN2010'd, end_treatment_date, 'd');
但是我怎样才能根据这个计数来检索相应的 y_ 变量呢?
在对如何遍历 period 变量并为每个人选择与 week_count 变量相对应的数字进行了徒劳的搜索之后,我想到了另一种方式……说这样的话。
array weeks(*) .
do i = 1 to dim(weeks) by 1;
if week_count = i then end_status = y_10&i;
end
...但要考虑到数组的维度与周数和年数之间存在不匹配的修改。
但接下来我的挑战是使以下部分工作......
if week_count = i then end_status = y_10&i;
如何让 SAS 根据循环索引选择正确的 y_ 变量?这似乎是一个非常简单的问题,但不知何故我还没有找到解决方案。在定义正确的 y_ 变量时,有没有办法使用变量“i”作为输入?
如果有人可以提出一些提示,我将不胜感激。