언어 설정과 독립적으로 스크립트를 만드는 방법은 무엇입니까?안녕하세요!
JMP 15가 영어로 설정되어 있고 다른 언어 설정에서 오류가 발생하는 경우 올바른 결과를 제공하는 스크립트가 있습니다.
내가 스크립트에서 사용하는 것은
:Name( "Mean(Something)" )
이것이 문제의 원인입니다. 예를 들어 독일어 설정에서 실제로 참조하려는 열은 "Mittelwert(Something)"이기 때문입니다. 다른 언어 설정에서도 이름이 다르게 지정되는 "Std Dev" 등도 마찬가지입니다. 내가 참조하고 싶은 열은 테이블 형식의 요약 열 결과입니다.
이와 같은 요약 열을 참조할 때 스크립트를 언어 설정과 독립적으로 만드는 방법은 무엇입니까? 좋은 습관이 있습니까?
다른스크립팅Re: 언어 설정과 독립적으로 스크립트를 만드는 방법은 무엇입니까?감사해요! 네 맞아요 예쁜거랑은 거리가 멀어요 하지만 제 경우에는 충분합니다. 일부 if 문에서 언어 코드를 사용하겠습니다.
요약 예제에 대해 무엇을 알게 될지 여전히 궁금합니다.Re: 언어 설정과 독립적으로 스크립트를 만드는 방법은 무엇입니까?Robbb, Mac에서 실행 중이므로 언어를 변경하려면 JMP를 다시 시작해야 합니다.
귀하의 문제를 Tabulate로 재현할 수 있었습니다. 열 이름 별칭을 올바르게 생성하지 않습니다. 버그로 신고하겠습니다. 그동안 다음과 같이 해결할 수 있습니다.
mean height = Match(System Service(Get Language Code),
"de", "Mittelwert(height)",<BR /> // Add more language cases here as needed
"Mean(height)"
);
DT = Open( "$SAMPLE_DATA/Big Class.jmp" );
Table1 = DT << Tabulate(
Add Table(
Column Table( Analysis Columns( :height ), Statistics( Mean ) ), // Here another language than English is not a problem.
Row Table( Grouping Columns( :age ) )
)
);
DT2 = Table1 << Make Into Data Table;
Eval(Parse(Substitute("\[
DT2 << New Column( "Stupid Formula",
Formula(
:Name("^MEAN HEIGHT") + 1 // Here it is a problem!
)
)]\",
"^MEAN HEIGHT", mean height)));
예쁘지는 않지만 이 고비를 극복할 수 있습니다.
요약 예의 경우 왜 이것이 귀하가 아닌 나에게 적합한지 조사해야 합니다. 아마도 최근에야 수정되었을 것입니다.
Re: 언어 설정과 독립적으로 스크립트를 만드는 방법은 무엇입니까?전략은 여러 가지에 따라 달라지는데 아직 모르겠습니다.
따라서 테이블 형식이 스크립트에 의해 생성된 경우 올바른 이름을 이미 알고 있을 수 있으므로 그에 따라 조치를 취할 수 있습니다.
또한 올바른 언어를 테스트하고 사용자에게 경고하거나 다음 스크립트에서 이 정보를 사용할 수 있습니다.
스크립트를 시작할 때 테이블이 존재하고 항상 동일한 구조를 가지고 있다면 열 위치로 테이블을 참조할 수 있습니다. 즉, 세 번째 열에 대한 열(dt, 3)입니다.
등등.
Re: 언어 설정과 독립적으로 스크립트를 만드는 방법은 무엇입니까?추신: 귀하의 예는 저에게 적합하지 않습니다. Column( dt_summ, "평균(높이)" )[1]; "열을 찾을 수 없습니다"라는 결과가 나타납니다. 언어를 변경한 후 JMP를 다시 시작했습니까?
스크립트의 내 테이블 스크립트는 다음과 같습니다. 보시다시피 평균 열에 대한 별칭이 없습니다. 그러나 N 행에는 있습니다. 왜 그런 겁니까?
New Table( "Big Class Nach (age)",
Add Rows( 6 ),
New Script(
["de" => "Quelle", "en" => "Source"],
Data Table( "Big Class" ) << Summary(
Group( :age ),
Mean( :height ),
Freq( "Keine" ),
Weight( "Keine" )
)
),
New Column(
["en" => "age", "ja" => "年齢", "x-id" => "S_age_Col", "zh-CN" => "年龄"],
Numeric,
"Ordinal",
Format( "Fixed Dec", 5, 0 ),
Set Property( "Notes", "Explore data adventurously" ),
Lock( 1 )
),
New Column( ["de" => "Anzahl Zeilen", "en" => "N Rows"],
Numeric,
"Continuous",
Format( "Fixed Dec", 12, 0 ),
Lock( 1 )
),
New Column( "Mittelwert(height)",
Numeric,
"Continuous",
Format( "Fixed Dec", 12, 1 ),
Set Selected,
Lock( 1 )
)
)
Re: 언어 설정과 독립적으로 스크립트를 만드는 방법은 무엇입니까?확신하는! 답장을 보내 주셔서 감사합니다. 그것이 내가 생각했던 거죠. "와우, JMP는 요약 열 이름도 자동으로 분석하고 번역합니다."라고 생각했던 때가 기억납니다.
하지만 제 경우에는 어떻게 든 작동하지 않습니다. 나는 그것을 무너 뜨렸다. 다음을 시도하십시오.
DT = Open( "$SAMPLE_DATA/Big Class.jmp" );
Table1 = DT << Tabulate(
Add Table(
Column Table( Analysis Columns( :height ), Statistics( <STRONG>Mean</STRONG> ) ), // Here another language than English is not a problem.
Row Table( Grouping Columns( :age ) )
)
);
DT2 = Table1 << Make Into Data Table;
DT2 << New Column( "Stupid Formula",
Formula(
<STRONG>:Name( "Mean(height)" )</STRONG> + 1 // Here it is a problem!
)
);
영어
스크립트 실행
"멍청한 공식" 열이 채워집니다.
독일어로 변경
JMP 15.2.1 재시작
스크립트 실행
Stupid Formula" 열이 채워지지 않습니다.
Re: 언어 설정과 독립적으로 스크립트를 만드는 방법은 무엇입니까?이안, 외쳐줘서 고마워! 그러나 Robbb의 질문은 이름이 지역화된 데이터 테이블에서 생성된 열을 참조하는 방법에 관한 것입니다.
Robbb, 이 스크립트:
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt_summ = dt << Summary(
Group( :age ),
Mean( :height ),
Freq( "None" ),
Weight( "None" )
);
Column( dt_summ, "Mean(height)" )[1];
JMP를 영어로 사용하든 독일어로 사용하든 상관없이 저에게 효과적입니다. 두 경우 모두 로그에 58.125를 인쇄합니다. "Mittelwert(height)" 열이 "Mean(height)"라는 별칭으로 생성되기 때문에 작동합니다. 테이블 스크립트를 복사하여 새 스크립트 창에 붙여 넣으면 이를 볼 수 있습니다.
New Column( ["de" => "Mittelwert(height)", "en" => "Mean(height)"],
Numeric,
"Continuous",
Format( "Fixed Dec", 12, 1 ),<BR />// etc.
이름으로 열을 조회할 때 JMP는 현재 로케일 이름과 영어 별칭을 모두 검사하여 일치하는 항목을 찾습니다.
당신에게 실패한 것에 대해 더 자세히 알려주실 수 있습니까?
Re: 언어 설정과 독립적으로 스크립트를 만드는 방법은 무엇입니까?'좋은 습관'에 관해서는 확실히 살펴 보겠습니다. 디스커버리 논문 ~에서 @hecht_jmp .