함수 내에서 새 테이블 변수 값을 업데이트하는 가장 좋은 방법은 무엇입니까?현재는 아래와 같이 하고 있습니다. 그러나 이 Days 변수는 업데이트되지 않으며 Days 2라는 새 변수가 생성됩니다.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << New Table Variable( "Days", 42 ); // In original data table, Days set to default which is 42
// assume below is a new function, and I'm passing dt as input and I want to update the Days variable
myFunction = Function ({dt},
// I want this Days variable get updated with new value below, 100
dt << New Table Variable ( "Days", 100);
dt << Select Where( :Name( "sex" ) == "F" );
dt << Subset( Copy formula( 1 ), Suppress formula evaluation( 0 ), Selected Rows( 1 ), Selected columns only( 0 ) );
dt = Data Table (Current Data Table() << Get Name());
);
myFunction(dt)</CODE></PRE><P> </P></LINGO-BODY><LINGO-LABS id="lingo-labs-682883" slang="en-US" mode="NONE"><LINGO-LABEL>자동화 및 스크립팅</LINGO-LABEL></LINGO-LABS><LINGO-SUB id="lingo-sub-682897" slang="en-US" mode="NONE">Re: 함수에서 새 테이블 변수 값을 업데이트하는 방법</LINGO-SUB><LINGO-BODY id="lingo-body-682897" slang="en-US" mode="NONE"><P>스크립팅 인덱스</P>
<P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="jthi_0-1696242700313.png" style="width: 999px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="jthi_0-1696242700313.png" style="width: 999px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="jthi_0-1696242700313.png" style="width: 999px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="jthi_0-1696242700313.png" style="width: 999px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="jthi_0-1696242700313.png" style="width: 999px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="jthi_0-1696242700313.png" style="width: 999px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="jthi_0-1696242700313.png" style="width: 999px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="jthi_0-1696242700313.png" style="width: 999px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="jthi_0-1696242700313.png" style="width: 999px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="jthi_0-1696242700313.png" style="width: 999px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="jthi_0-1696242700313.png" style="width: 999px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="jthi_0-1696242700313.png" style="width: 999px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="jthi_0-1696242700313.png" style="width: 999px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="jthi_0-1696242700313.png" style="width: 999px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="jthi_0-1696242700313.png" style="width: 999px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="jthi_0-1696242700313.png" style="width: 999px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="jthi_0-1696242700313.png" style="width: 999px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="jthi_0-1696242700313.png" style="width: 999px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="jthi_0-1696242700313.png" style="width: 999px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="jthi_0-1696242700313.png" style="width: 999px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="jthi_0-1696242700313.png" style="width: 999px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="jthi_0-1696242700313.png" style="width: 999px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="jthi_0-1696242700313.png" style="width: 999px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="jthi_0-1696242700313.png" style="width: 999px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="jthi_0-1696242700313.png" style="width: 999px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="jthi_0-1696242700313.png" style="width: 999px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="jthi_0-1696242700313.png" style="width: 999px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="jthi_0-1696242700313.png" style="width: 999px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="jthi_0-1696242700313.png" style="width: 999px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="jthi_0-1696242700313.png" style="width: 999px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="jthi_0-1696242700313.png" style="width: 999px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="jthi_0-1696242700313.png" style="width: 999px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="jthi_0-1696242700313.png" style="width: 999px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="jthi_0-1696242700313.png" style="width: 999px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="jthi_0-1696242700313.png" style="width: 999px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="jthi_0-1696242700313.png" style="width: 999px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="jthi_0-1696242700313.png" style="width: 999px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="jthi_0-1696242700313.png" style="width: 999px;"><span class="lia-inline-image-display-wrapper" image-alt="jthi_0-1696242700313.png" style="width: 999px;"><img src="https://us.v-cdn.net/6038925/uploads/images/57148iA94A611B5705E00A/jthi_0-1696242700313.png" role="button" title="jthi_0-1696242700313.png" alt="jthi_0-1696242700313.png" /></span></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></P>
<P>따라서 새 변수를 만드는 대신 << Set Table Variable을 사용하세요.</P></LINGO-BODY><LINGO-SUB id="lingo-sub-683259" slang="en-US" mode="NONE">Re: 함수에서 새 테이블 변수 값을 업데이트하는 방법</LINGO-SUB><LINGO-BODY id="lingo-body-683259" slang="en-US" mode="NONE"><P>안녕,</P><P> </P><P>이 제안에 감사드리며 효과가 있다고 생각합니다.이 외에도 이 변수 업데이트에 관해 몇 가지 추가 질문이 있습니다. JSL이 함수 외부에서 선언한 새 변수를 기반으로 데이터 테이블 변수를 업데이트할 수 있는 방법을 알고 있습니까? 아래와 같이 코드를 수정했는데 작동하지 않는 것 같습니다. Set Table Variable이 a 및 b 변수에서 값을 로드할 수 있기를 원합니다.</P><P> </P><PRE><CODE class=" language-jsl">Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << New Table Variable( "Days", 42 ); // In original data table, Days set to default which is 42
// declare new variable, this will be input from user
a = 100;
b = 200;
// assume below is a new function, and I'm passing dt and a as input
myFunction1 = Function ({dt, a},
// I want this Days variable get updated with new value based on a
dt << Set Table Variable ( "Days", :a);
dt << Select Where( :Name( "sex" ) == "F" );
dt << Subset( Copy formula( 1 ), Suppress formula evaluation( 0 ), Selected Rows( 1 ), Selected columns only( 0 ) );
dt = Data Table (Current Data Table() << Get Name());
);
// assume below is a new function, and I'm passing dt and b as input
myFunction2 = Function ({dt, b},
// I want this Days variable get updated with new value based on b
dt << Set Table Variable ( "Days", :b);
dt << Select Where( :Name( "sex" ) == "M" );
dt << Subset( Copy formula( 1 ), Suppress formula evaluation( 0 ), Selected Rows( 1 ), Selected columns only( 0 ) );
dt = Data Table (Current Data Table() << Get Name());
);
myFunction1(dt);
myFunction2(dt);
테이블 변수를 사용하지 않는 경우
dt << Set Table Variable
먼저 변수를 삭제한 다음 다시 만들어야 합니다.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << New Table Variable( "Days", 42 ); // In original data table, Days set to default which is 42
// assume below is a new function, and I'm passing dt as input and I want to update the Days variable
myFunction = Function ({dt},
// I want this Days variable get updated with new value below, 100
dt << Delete Table Variable ( "Days");
dt << New Table Variable ( "Days", 100);
dt << Select Where( :Name( "sex" ) == "F" );
dt << Subset( Copy formula( 1 ), Suppress formula evaluation( 0 ), Selected Rows( 1 ), Selected columns only( 0 ) );
dt = Data Table (Current Data Table() << Get Name());
);