루프에서 다른 열을 나타내는 방법 [I]안녕하세요.
다시 나는 도움을 청해야한다. 숫자 열의 값과 다음 열의 값 사이의 변경 백분율을 계산하는 스크립트를 작성했습니다. 불행히도 오류가 발생합니다 : "열 1897_Canvi 수식이 중단되었습니다.
인수를 숫자 또는 [행렬]로 1 회 변환 할 수 없음 행 : {1} 연산 : numericColNames [X] - numericColNames [i]
수식 평가 오류가 무시되었습니다 "
다음은 numericColNamesn입니다.
{_1840 _ _, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _1970_ ","_1981_ ","_1991_ ","_2001_ ","_2011_ ","_2018_ "}
이것은 문제의 스크립트입니다.
Names Default To Here( 1 );
dt = Current Data Table();
numericColNames = dt << get column names( string, numeric );
For( i = 2, i <= N Items( numericColNames ), i++,
Eval(
Substitute(
Expr(
New Column( Char( numericColNames[i] ) || "_Canvi",
Numeric,
Continuous,
Format( "Percent", 12, 1 ),
X = i - 1,
Formula( (numericColNames[X] - numericColNames[i]) / numericColNames[X] )
)
),
Expr( __col__ ), Parse( ":Name (\!" " || numericColNames[i] || "\!")" )
)
)
);재 : 루프에서 [I] 다른 열을 나타내는 방법Substitute () 함수를 올바르게 설정하지 않습니다.
대체하고 대체하다
Substitute () 함수는 대체 표현식이있는 문자열의 복사본을 반환합니다. 그만큼
대체 Into () 함수는 원래 문자열을 대체 표현식으로 변경합니다.
예를 들어, 다음 스크립트를 고려하십시오.
str1 = str2 = "All things considered";
str3 = Substitute( str1, "All", "Some" );
// str3 holds the result of the Substitute, and str1 is not changed
str4 = Substitute Into( str2, "All", "Some" );
// Substitute Into returns nothing, so str4 is missing, and str2 is changed
// and now holds the result of Substitute Into
Show( str1, str2, str3, str4 );
이 스크립트는 다음과 같은 결과를 반환합니다.
str1 = "모든 것을 고려";
str2 = "고려 된 것들";
str3 = "고려 된 것";
str4 =.;
나는 너에게 대본을 고쳤다. 내가 생각하는 것이 네가 원하는대로 될 것이다.
Names Default To Here( 1 );
dt = Current Data Table();
numericColNames = dt << get column names( string, numeric );
For( i = 2, i <= N Items( numericColNames ), i++,
Eval(
Substitute(
Expr(
New Column( Char( numericColNames[i] ) || "_Canvi",
Numeric,
Continuous,
Format( "Percent", 12, 1 ),
X = i - 1,
Formula( (__colX__ - __coli__ / __colX__ )
)
),
Expr( __coli__ ), Parse( ":Name (\!" " || numericColNames[i] || "\!")" ),
Expr( __colX__ ), Parse( ":Name (\!" " || numericColNames[X] || "\!")" )
)
)
);
Substitute () 함수 설명서는 스크립팅 가이드에서 복사했습니다.
도움말 ==> 서적 ==> 스크립팅 가이드
재 : 루프에서 [I] 다른 열을 나타내는 방법우선, 당신의 도움에 감사드립니다. 스크립트를 실행할 때 오류가 발생합니다.
다음 스크립트에서 / * ### * /
대체 / * ### * / (Expr (...)
원본의이 부분은 란의 이름이 1980 년과 같은 정수이기 때문에 당신은 과거 포스트에서 건의되었다. 대체 물질은 1980 년 대신에 "_1980_"이라면 제거 될 수있다.
"\!"연산자는 무엇을 하는가? ": 이름"뒤에.
당신의 가르침에 다시 한번 감사드립니다.
재 : 루프에서 [I] 다른 열을 나타내는 방법1980 컬럼 이름은 컬럼 스펙 주위에 : Name ( "1980")을 넣어서 수정되는 문제점을 야기합니다. Substitute () 함수가 사용되는 이유는 아닙니다. 열에 대해 값이 저장되는 수식을 원하지 않기 때문에 Substitute () 함수가 있습니다.
(numericColNames[X] - numericColNames[i]) / numericColNames[X] )
오히려 가치를 지니고있다.
( __1980__ - __1960__ / __1980__ )
수식에 지정된 첫 번째 구문이 있으면 JMP 세션에서 i, X, numericColNames 값을 변경하는 즉시 수식이 실패 함을 의미합니다. 즉, 데이터 테이블을 저장하고 JMP 세션을 종료 한 다음 JMP를 다시 시작하면 새 JMP 세션에 변수 i, X 또는 numericColNames가 없으므로 데이터 테이블을 열 때 모든 해당 변수를 참조하는 수식이있는 열은 실패합니다.
마지막으로, 현재 발견하고있는 문제가 무엇인지 잘 모릅니다. 데이터 샘플을 제공 할 수 있다면 최소한 문제를 파악할 기회를 갖게 될 것입니다.
재 : 루프에서 [I] 다른 열을 나타내는 방법다시 안녕하세요. 제가 의도 한 것은 Teruel (스페인) 지방 자치제에서 시간이 지남에 따라 실시 된 계속되는 인구 조사에서 주민 수의 변화율을 계산하는 것입니다. 나의 의도는 인구 조사를 다음의 인구 조사와 비교하는 것입니다. 지방 자치 단체의 이름을 (부분적으로) 묶어 놓은 데이터 표의 첫 번째 열에는 다음 6 곳의 각 자치도의 주민들이 다른 인구 조사에 나타납니다. 환율을 계산하기 위해 하나의 센서스와 다음 센서스의 차이를 계산하고 결과를 첫 번째 인구 조사로 나눈 다음 얻은 값을 백분율로 표시합니다. 즉 (_1842_ - _1877_) / _1842_
