기존 열 이름을 사용하여 수식 생성Names Default To Here( 1 );
dt = Current Data Table();
numcol=dt << Get Column Names(Numeric);
charcol=dt << Get Column Names( Character);
For( k = 1, k <= N Items( numcol ), k++,
colname=column(numcol[k]) <<GET name=""></GET>
안녕하세요 JMP 사용자 여러분,
미리 정의된 기준에 따라 숫자 열에 대해 일부 변환을 수행해야 하는 데이터 테이블이 있습니다.
"표현식이 '잘못된 인수'에 대한 액세스 또는 평가의 행 1에서 사용 가능한 열 유형에 맞지 않습니다." 오류가 발생합니다.
이 문제를 해결하는 방법에 대한 아이디어가 있습니까? 감사합니다!
스크립팅Re: 기존 열 이름을 사용하여 수식 만들기여기에 2가지 문제가 있습니다.
- 수식이 새 열에 표시되면 수식으로 추가되기 전에 처리되지 않습니다.따라서 지정할 때
:Column(dt, colname)
JMP는 이를 첫 번째 숫자 열 이름으로 변경한 다음 두 번째 등으로 변경하지 않습니다.JSL 작성자는 참조를 Format 요소에 전달하기 전에 완료/완료된 JSL 문으로 참조를 확장하는 코드를 사용해야 합니다.
- 데이터 테이블의 열 이름(예: 1, 2, 3, 4 등)은 열 이름으로 해석되도록 특별히 지정하지 않는 한 JMP 해석에서 문제를 일으킵니다.따라서 :"column name"n 구조를 사용해야 합니다.
아래는 원하는 새 열을 생성하는 코드 재작업입니다.
Names Default To Here( 1 );
dt = Current Data Table();
numcol = dt << Get Column Names( Numeric );
charcol = dt << Get Column Names( Character );
For( k = 1, k <= N Items( numcol ), k++,
colname = Column( numcol[k] ) << Get Name;
Eval(
Substitute(
Expr(
dt << New Column( "site" || numcol[k],
formula(
If(
:ID == "item5", (__colname__ * 0.5) / 20,
:ID == "item8", (__colname__ * 0.8) / 20,
__colname__
)
)
)
),
Expr( __colname__ ), Parse( ":\!"" || colname || "\!"n")
)
);
);