长期用户,第一次发帖。我对 IML 很陌生,之前在 R 中玩过。我目前正在尝试创建一个邻接列表,以便更轻松地计算 SAS/IML 中的网络。我正在处理的文件很大。我正在做一个涉及使用 SASfile 并且在内存中没有邻接列表的实现。创建一个空文件并从特定行(对应于特定代理)读取一切顺利,直到“最后”步骤:更新整个观察。
下面是一直有效的 IML 代码,直到最后阶段。
proc iml;
/* initialize vars*/
checkObs = 2;
numCol = 5;
db = "myTestDataBase";
nObs = 5;
temp = {};
myList = J(1, numCol, 0);
nVarToUpdate = 2;
/* create empty database */
create (db) from myList;
append from myList;
close (db);
do i = 1 to (nObs-1);
edit (db);
append from myList;
close (db);
end;
/* read index checkObs and write to temp*/
edit (db);
read point (checkObs) into temp; /* Read an entire row*/
temp[nVarToUpdate] = 1; /* I would like to update some values*/
/* I want to replace point chekObs with the whole of vector temp*/
replace point checkObs var _all_;
close (db);
print temp;
我的目标是替换/更新整个观察(行),同时保持行的顺序不变。有任何想法吗?