안녕하세요 여러분, 저는 값이 매우 작은 열에 대해 새로운 숫자 열을 생성하는 스크립트를 가지고 있습니다(즉, 더 나은 가독성을 위해 단위 미터가 있는 열을 mm 또는 µm로 변환).
잘 작동하는 것 같았습니다. 열은 문제 없이 생성되었습니다. 그러나 나중에 다른 테이블과 조인할 때 몇 가지 문제가 발생하여 갑자기 열에 더 이상 데이터가 표시되지 않습니다. 새 열에서 수식을 확인할 때 원본 열의 이름 대신 스크립트의 루프에서 colnames[i] 참조가 있음을 알 수 있습니다(스크린샷 참조).
Names Default To Here( 1 );
dt = Current Data Table();
colnames = dt << get column names( numeric, string );
For( i = 1, i <= N Items( colnames ), i++,
If( (Col Max( column(dt,colnames[i]))-Col Min( column(dt,colnames[i])))<1e-4 & (Col Max( column(dt,colnames[i]))-Col Min( column(dt,colnames[i])))>0,
If( !Contains( colnames, colnames[i] || "_µm"),
dt << New Column( colnames[i] || "_µm", Formula( As Column( colnames[i] ) * 1e6 ) ) )
,
If( (Col Max( column(dt,colnames[i]))-Col Min( column(dt,colnames[i])))<1e-1 & (Col Max( column(dt,colnames[i]))-Col Min( column(dt,colnames[i])))>1e-4,
If( !Contains( colnames, colnames[i] || "mm"),
dt<<NEW column=""></NEW>
안녕 @mvanderaa1 ,
이것은 매우 일반적인 문제입니다. 아래 링크에 나열된 옵션 중 하나를 시도해 볼 수 있습니까?
Eval Insert, Eval Expr, Parse 및 Substitute를 사용하여 한 표현식을 다른 표현식에 삽입
내가 가장 좋아하는 것은 다음과 같습니다.
//Eval Expr
For( i = 1, i <= N Items(cols), i++,
Eval( Eval Expr(
dt << New Column(
"2 * " || Char( cols[i] ),
Numeric,
"Continuous",
Formula( As Column( Expr( Char( cols[i] ) ) ) * 2)
)
) )
);