IML 프로 시저에서 명명 된 열이있는 행렬이 있습니다.사용자 정의 모듈에서 열 이름별로 행렬 열 액세스
proc iml;
myMatrix = {1 2 3, 1 4 9};
mattrib myMatrix colname={"a", "b", "c"};
print myMatrix;
print (myMatrix[,"a"]);
/* load module = myModule;*/
/* run myModule(myMatrix);*/
run;
나는 쉽게 이름에 액세스하여 인쇄 할 수 있습니다. I는 사용자 정의 모듈 매트릭스를 전달할 때, 상기 모듈 내부의 열 이름 사라 (모듈을 실행 주석 처리 이전 PROC의 IML에서 선)
proc iml;
start myModule(MatrixWithHeader);
print MatrixWithHeader;
print (MatrixWithHeader[,"a"]);
finish myModule;
store module=myModule;
run;
I 다음 오류 얻었다 :
ERROR: (execution) Character argument should be numeric.
을
모듈의 행렬 이름에 어떻게 액세스 할 수 있습니까?
열 번호로 액세스하면 코드가 융통성을 잃게됩니다. 가능한 해결 방법은 열 이름의 벡터를 인수로 전달하고 모듈 내에서 mattrib를 실행하는 것입니다. 그러나 mattrib를 반복하는 것은 번거롭고이 경우에는 myMatrix에서 코드 이름을 추출해야합니다. 예를 들어 코드와 같이 긴 코드로 정의되므로 이름의 벡터를 사용할 수 없습니다. 사전에
감사합니다,
알렉스
솔루션에 대한
감사를 해결했다.