나중에 누적 데이터 테이블을 만드는 데 사용할 열 참조 목록을 만들려고 합니다.
함수 내에서 목록을 만들면 완벽하게 작동합니다.그러나 클래스 메서드 내에서 동일한 작업을 시도하면 "No value to Op Assign"(1, 2) 오류 메시지가 표시되고 작동하지 않습니다.
make_col_list = Function({dt,start,end},
Local({lst,col_list},
Try(
Current Data Table(dt);
col_list = {};
lst = dt << Get Column Names;
For(i=start,i<=end,i++,
Insert Into(col_list,lst[i])
);
,
Throw("Error in col_list: "||char(exception_msg))
);
col_list;
);
);위는 하나의 스크립트에서 사용하는 기능입니다.이 기능은 현재 문제 없이 작동합니다.
그러나 클래스 내에서 비슷한 아이디어를 시도하면 작동하지 않습니다.아래는 클래스 내부에서 정의한 방법입니다.
col_list = dt << Get Column Names;
show(col_list);
show(col_list[26]);
Try(
For(pv_i=27,pv_i<=696,i++,
show(col_list[pv_i]);
Insert Into(pv_lst,col_list[pv_i]);
);
,
Throw("Error in pv columns: "||Char(exception_msg));
);
Try(
For(zv_i=16,zv_i<=25,zv_i++,
Insert Into(zv_lst,col_list[zv_i]);
);
,
Throw("Error in zv columns: "||Char(exception_msg));
);
Try(
For(wr_i=26,wr_i<=361,wr_i++,
Insert Into(wr_lst,col_list[wr_i]);
);
,
Throw("Error in work columns: "||Char(exception_msg));
);
Try(
For(dr_i=362,dr_i<=696,dr_i++,
Insert Into(dr_lst,col_list[dr_i]);
);
,
Throw("Error in drive columns: "||Char(exception_msg));
);선택하고 조작하려는 열 그룹이 여러 개 있습니다.
나는 원래 다음과 같은 방법을 사용하려고했습니다.
pv_lst = Column(26::696);
그러나 이것도 작동하지 못했습니다.
열 참조 목록 또는 컬렉션을 올바르게 생성하는 방법에 대한 도움이 있으면 좋습니다.
안녕 @awsmagala ,
매우 복잡한 방식으로 상대적으로 간단한 작업을 수행하려는 것처럼 들립니다.명시적인 열 이름 대신 열 번호 목록을 사용하여 테이블 스택을 수행할 수 있습니다.예를 들어 Car Physical Data(샘플 데이터 테이블)의 모든 숫자 열을 다음과 같은 일반적인 방법으로 쌓을 수 있습니다.
Data Table( "Car Physical Data" ) << Stack(
columns( :Weight, :Turning Circle, :Displacement, :Horsepower, :Gas Tank Size ),
Source Label Column( "Label" ),
Stacked Data Column( "Data" )
)
또는 columns 인수에서 다음과 같이 할 수 있습니다.
stack_cols = 4::8;
Data Table( "Car Physical Data" ) << Stack(
columns( stack_cols ),
Source Label Column( "Label" ),
Stacked Data Column( "Data" )
);
스택하려는 열이 모두 함께 있지 않은 경우 열 번호 청크를 함께 연결할 수 있습니다.도움이 되길 바랍니다.
또한 범위 내 실제 열 이름을 가져오려면 해당 make_col_list 함수를 다음과 같이 줄일 수 있습니다.
col_names = (dt << Get Column Names)[start::end]