Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays SAS Do具有多个变量的循环_Arrays_Loops_Sas - Fatal编程技术网

Arrays SAS Do具有多个变量的循环

Arrays SAS Do具有多个变量的循环,arrays,loops,sas,Arrays,Loops,Sas,因此,我有一个包含文本的字符串,例如“Jonathan Bob Thomas Smith”,我将单词划分为4个变量(OLDVAR1-4),因此OLDVAR1将是Jonathan,OLDVAR2将是Bob等。我要做的是用do循环重写以下代码: NewVar1 = Index(String,OldVar1); NewVar2 = Index(String,OldVar2); NewVar3 = Index(String,OldVar3); NewVar4 = Index(String,OldV

因此,我有一个包含文本的字符串,例如“Jonathan Bob Thomas Smith”,我将单词划分为4个变量(OLDVAR1-4),因此OLDVAR1将是Jonathan,OLDVAR2将是Bob等。我要做的是用do循环重写以下代码:

NewVar1 = Index(String,OldVar1);

NewVar2 = Index(String,OldVar2);

NewVar3 = Index(String,OldVar3);

NewVar4 = Index(String,OldVar4);
我试过:

Array NewVar[i];

Do i = 1 to 4;

NewVar[i] = Index(String,OldVar[i]);

end;
但我收到错误消息“UndeclareArray referenced OldVar”,并且我似乎无法在数组中执行多个引用


非常感谢您的帮助。

您只需要按照SAS的要求执行:声明数组OldVar。因此,您的代码将如下所示:

Array NewVar[4];
Array OldVar[4];
Do i = 1 to 4;
    NewVar[i] = Index(String,OldVar[i]);
end;

顺便说一句,不能使用
i
声明数组,除非
i
已经分配了一些整数值。

声明数组时必须指定实际的元素数。基本语法如下:
Array arrayName(元素数)variableList
e、 g

data test1;
    string='Jonathan Bob Thomas Smith';
    Oldvar1='Bob';
    Oldvar2='Smith';
    Oldvar3='mas';
    Oldvar4='tha';
    ;
run;

data test2;
    set test1;
    Array NewVar(4) Newvar1-Newvar4;
    Array Oldvar(4) Oldvar1-Oldvar4;  *Additional array that's used in do loop;
    do i=1 to 4;
        NewVar[i] = Index(String,OldVar[i]);
    end;
    drop i;
run;