SAS에서 JSL로 - 루프 수행...저는 오랫동안 JSL을 배워야 하는 SAS 사용자입니다...
SAS에서 쉽게 찾은 것이 JSL에서 너무 어려워 보입니다 ...
누군가 JSL을 사용하여 다음 중첩 do 루프 테이블을 생성하는 JSL 코드를 공유하여 JSL에서 Do Loops가 어떻게 작동하는지 보여줄 수 있습니까?
데이터 좌절;
temp = 1에서 10으로 1을 수행합니다.
누르십시오 = 5에서 20 x 5;
수행 시간 = 1에서 1000 x 20;
산출;
끝;
끝;
끝;
운영;
이것은 이러한 유형의 시뮬레이션을 생성하는 데 상당히 간단해야 하지만 나는 이것을 알아낼 수 없는 것 같습니다.
스크립팅Re: SAS에서 JSL로 - 루프 실행...JSL 학습에 대한 올바른 위치에 왔습니다.스크립팅 인덱스는 온라인 문서와 마찬가지로 친구입니다.
다음은 원하는 작업을 수행하는 코드 스니펫입니다.
dt = data table("frustration");
for (temp = 1, temp <= 10, temp++,
for (press = 5, press <= 20, press+=5,
for (time = 1, time <= 1000, time+=20,
show(temp, press, time); // output
);
);
);
Re: SAS에서 JSL로 - 루프 실행...이 모든 내용은 스크립팅 가이드에서 다루며, 이 가이드를 읽어보시기를 강력히 권장합니다.JMP의 도움말 풀다운 메뉴에서 사용할 수 있는 JMP 설명서 라이브러리에서 사용할 수 있습니다.
Re: SAS에서 JSL로 - 루프 실행...JSL에 대한 C++ 프로그래머 가이드 도움이 될 수도 있습니다. JSL for 문이 실제로 어떻게 함수인지 보여주려고 하며, 이를 알면 구문을 올바르게 이해하는 것이 훨씬 더 쉬워집니다.
Re: SAS에서 JSL로 - 루프 실행...도움을 주셔서 감사합니다 pmroz
Re: SAS에서 JSL로 - 루프 실행...무슨 말씀이신지... 감사합니다... 근데 기독교를 이해하려면 성경을 읽으라고 하는 것 같군요.. 이거 어떻게 해야할지 찾느라 스크립팅 가이드에서 2시간 정도 썼습니다. 쉬운 개념... 또한, 다른 스크립트를 작성하는 데 많은 성공을 거뒀지만... 솔직히 말해서, 스크립팅 가이드를 보면 SAS 라이센스에 대한 추가 예산 20,000에 대한 갈망이 있습니다.
저는 하드코어 코더가 아닙니다... 나는 단지 일을 빨리 끝내려고 노력하는 엔지니어입니다.
Re: SAS에서 JSL로 - 루프 실행...감사합니다... 도움이 됩니다.
Re: SAS에서 JSL로 - 루프 실행...예제를 통해 배우는 것이 더 쉽다고 생각하므로 이 포럼에서 최대한 많은 코드를 살펴보십시오.일단 시작하면 스크립팅 인덱스는 진정한 친구가 될 것입니다.
JSL ~을위한 루프 및 만약 이 진술은 개념적으로는 간단하지만 처음에는 나에게 약간 당혹스러웠습니다.학습 곡선을 단축하려면 만약 , 함수라는 것을 기억하고 쉼표는 다음을 나타냅니다. 그 다음에 , 그렇지 않으면 그리고 또 다른 .스크립트 창을 엽니다( Ctrl-T ), 창에서 마우스 오른쪽 버튼을 클릭하고 포함된 로그 표시 .아래 코드를 붙여넣고 클릭 Ctrl-R 실행합니다., b 및 c에 대해 다른 값을 사용하여 어떤 일이 발생하는지 확인합니다.
a = 1;
b = 2;
c = 1;
if (a == b,
// then
print("a is equal to b");
,
// else if
a == c,
// then
print("a is equal to c");
,
// else
print("No match found for a");
);
Re: SAS에서 JSL로 - 루프 수행...새로운 언어로 시작하는 것이 얼마나 어려운지 이해하는 완전한 예입니다. (도움말->스크립팅 색인과 온라인 도움말은 상호 보완적인 리소스입니다. 나는 주로 도움말->스크립팅 인덱스를 사용하여 작동 방식을 상기시킵니다. 시작하는 데 온라인 도움말이 더 나을 수 있습니다.) 여기에 필요한 것보다 조금 더 넣었습니다. 이름의 대소문자에 대한 SAS 규칙을 잊어버렸습니다...
Names Default To Here( 1 );
// what does that mean? JSL has several namespaces; the 'here' namespace is for this
// editor window and means 'press' is really 'here:press' but 'dtFrustration:press' belongs to
// the table's namespace (of column names.) You could also just use different names,
// like 'iPress' for the loop control variable. JMP's variable names are almost never
// case sensitive, the weird exception being column names, which are only sensitive <BR />// if both 'Age' and 'age' are columns...Don't do that!
// an easy way to get this table script is to make a new table with the
// JMP GUI, then use the top-left red triangle to 'Copy Table Script (No Data)'.
// By convention, JSL uses 'dt' in the variable name that holds a handle to a table.
dtFrustration = New Table( "frustration",
New Column( "temp" ), // continuous numeric by default
New Column( "press" ),
New Column( "time" )
);
// because the table might be linked to other reports, there
// is a lot of hidden messaging when the table changes. A lot.
// The messaging can be shut off and later enabled for a nice speedup.
// (to see it take longer, rerun just the loop below.)
// dtFrustration << BeginDataUpdate; // pair with EndDataUpdate, below
For( temp = 1, temp <= 10, temp++,
For( press = 5, press <= 20, press += 5,
For( time = 1, time <= 1000, time += 20,
dtFrustration << addrows( 1 );
dtFrustration:time = time;
dtFrustration:temp = temp;
dtFrustration:press = press;
)
)
);
// dtFrustration << EndDataUpdate;