언어 설정과 독립적으로 스크립트를 만드는 방법은 무엇입니까?여보세요!
JMP 15가 영어로 설정되어 있고 다른 언어 설정에서 오류가 발생하면 올바른 결과를 제공하는 스크립트가 있습니다.
내가 스크립트에서 사용하고있는 것은
:Name( "Mean(Something)" )
그리고 그것이 문제의 원인입니다. 예를 들어 독일어에서 제가 실제로 참조하고 싶은 열을 설정하는 것은 "Mittelwert (Something)"이기 때문입니다. 다른 언어 설정에서도 다르게 이름이 지정되는 "Std Dev"등도 마찬가지입니다. 참조하고 싶은 열은 표의 요약 열의 결과입니다.
이와 같은 요약 열을 참조 할 때 언어 설정과 독립적으로 skript를 만드는 방법은 무엇입니까? 좋은 습관이 있습니까?
다른스크립팅Re : 언어 설정과 독립적으로 스크립트를 만드는 방법은 무엇입니까?'좋은 연습'에 관해서는 확실히 살펴볼 것입니다 디스커버리 페이퍼 ...에서 헉헉 .
Re : 언어 설정과 독립적으로 스크립트를 만드는 방법은 무엇입니까?Ian, 외쳐 주셔서 감사합니다! 그러나 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 : 언어 설정과 독립적으로 스크립트를 만드는 방법은 무엇입니까?확실한! 답장을 보내 주셔서 감사합니다. 그것이 내가 생각했던 거죠. "와우, 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!
)
);
영어
스크립트 실행
"Stupid Formula"열이 채워집니다.
독일어로 변경
다시 시작된 JMP 15.2.1
스크립트 실행
Stupid Formula "열이 채워지지 않았습니다.
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 : 언어 설정과 독립적으로 스크립트를 만드는 방법은 무엇입니까?전략은 몇 가지에 달려 있지만 아직 잘 모르겠습니다.
따라서 테이블 형식이 스크립트에 의해 생성 된 경우 이미 올바른 이름을 알고있을 수 있으며 그에 따라 조치를 취할 수 있습니다.
올바른 언어를 테스트하고 사용자에게 경고하거나 다음 스크립트에서이 정보를 사용할 수도 있습니다.
스크립트를 시작할 때 테이블이 존재하고 항상 동일한 구조를 갖는 경우 열 위치, 즉 세 번째 열에 대한 column (dt, 3)으로 참조 할 수 있습니다.
등등.
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 : 언어 설정과 독립적으로 스크립트를 만드는 방법은 무엇입니까?감사! 예, 당신이 옳습니다. 예쁘지 않습니다. 하지만 제 경우에는 충분합니다. 일부 if 문에서 언어 코드를 사용하겠습니다.
요약 예제에 대해 무엇을 알게 될지 여전히 궁금합니다.