Columnlist를 사용하여 많은 열을 쌓는 방법<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />안녕하세요. 열 이름을 읽어서 열 목록으로 저장하고 싶습니다. .... 이 목록을 사용하면 아래 표시된 코드처럼 수동으로 쌓는 대신 단일 명령으로 이러한 여러 열을 쌓을 수 있습니까?
dt_L5 << 스택(
열(
:이름( "MISC_L5_Test230_2(1)" ),
:이름( "MISC_L5_Test230_2(2)" ),
:이름( "MISC_L5_Test230_2(3)" ),
:이름( "MISC_L5_Test230_2(4)" ),
:이름( "MISC_L5_Test230_2(5)" ),
:이름( "MISC_L5_Test230_2(6)" ),
:이름( "MISC_L5_Test230_2(7)" ),
:이름( "MISC_L5_Test230_2(8)" ),
.
.
.
.
:이름( "MISC_L5_Test230_2(125)" )
),
소스 레이블 열( "Label" ),
누적 데이터 열( "Data" ),
출력 테이블( "L5" )
);
나는 이런 일을하고 싶다 :
clist=dt_L5<<열 이름 가져오기;
ncols = N개 항목(clist);
dt_L5 << 스택(
열(
for(i=1,i<=ncols,i++,
name_list = 클리스트 ;
/* "를 어떻게 호출해야 합니까?" :이름("이름_목록") " 여기 ?? */
);
소스 레이블 열( "Label" ),
누적 데이터 열( "Data" ),
출력 테이블( "L5" )
);
Re: Columnlist를 사용하여 많은 열을 쌓는 방법
안녕,
최종 스크립트는 다음과 같나요?
전역변수 지우기(); /* 이전 실행에서 상주 메모리를 지웁니다*/
/* 파일을 엽니다*/
dt=열기(
파일 선택(
"*.csv 파일 선택",
현재 디렉터리 가져오기(),
{"모든 JMP 파일|jmp;jsl;jrn;csv;txt", "모든 파일|*"}
)
);
기다려(0);
nc_dt = N Col(); /*파일의 열 수를 가져옵니다*/
기다려(0);
clist = dt <<열 이름 가져오기; /* 스태킹에 사용할 열 이름을 가져옵니다*/
ncols = N개 항목(clist);
기다려(0);
티리스트={};
for(i=2,i<=ncols,i++,
insertinto(tlist,clist );
);
기다려(0);
dt2 << 스택(
열(평가(tlist)),
소스 레이블 열( "Label" ),
누적 데이터 열( "Data" ),
출력 테이블( "DT5" )
);
Re: Columnlist를 사용하여 많은 열을 쌓는 방법엄청난! 고마워 MS ... JMP8.0이 있는데 그게 문제일 수도 있어요
Re: Columnlist를 사용하여 많은 열을 쌓는 방법좋아요. 나에게는 eval() 없이도 작동합니다. Mac용 JMP 9.0.3.
이는 심지어 작동합니다. 즉, columns() 인수 내부에 목록을 생성하는 것입니다. 나중에 스크립트에서 매개변수가 필요하지 않은 경우 편리할 수 있습니다. 그러나 변수를 명확하게 기술하면 코드를 더 쉽게 읽고 디버그할 수 있습니다.
dt1_L0 << 스택 (
기둥 ( dt1_L0 << 열 이름 가져오기 ) ,
소스 라벨 열 ( "상표" ) ,
누적 데이터 열 ( "데이터" ) ,
출력 테이블 ( "L5" )
) ;
Re: Columnlist를 사용하여 많은 열을 쌓는 방법이 포럼에서 검색하면 ..... eval(list) 을 사용해야 한다는 답변을 찾을 수 있습니다.
충돌하다 = dt1_L5 << 열 이름 가져오기 ;
dt1_L0 << 스택 (
기둥 ( 평가 ( 충돌하다 ) ) ,
소스 라벨 열 ( "상표" ) ,
누적 데이터 열 ( "데이터" ) ,
출력 테이블 ( "L5" )
) ;
귀하의 지원에 감사드립니다!
Re: Columnlist를 사용하여 많은 열을 쌓는 방법다시 한번 감사합니다! ... 스택 명령 후 로그 창에 다음 메시지가 나타납니다.
"'Bad Argument'에 대한 액세스 또는 평가에서 열을 찾을 수 없습니다.
비어 있는()"
그리고 누적 테이블 출력이 표시되지 않습니다. :-s 도움을 주셔서 정말 감사합니다!
Columnlist를 사용하여 많은 열을 쌓는 방법조건부로 다음과 같습니다.
티리스트 = {} ;
~을 위한 ( 나 = 1 , 나 <= ncols , 나 ++,
만약에 ( 나 > 삼 ,
에 집어 넣다 ( 티리스트 , 충돌하다 [ 나 ]) ;
) ;
) ;
또는 조건 없이 수정된 이니셜 나 :
티리스트 = {} ;
~을 위한 ( 나 =4 , 나 <= ncols , 나 ++,
에 집어 넣다 ( 티리스트 , 충돌하다 [ 나 ]) ;
) ;
Re: Columnlist를 사용하여 많은 열을 쌓는 방법이 같은 ?? ....
충돌하다 = dt1_L5 << 열 이름 가져오기 ;
/*여기서의 의도는 이전 목록에서 처음 3개를 삭제하여 새 목록을 저장하는 것입니다*/
ncols = N개 항목(collist);
for(i=1;i<=ncols;i++,
만약(i>3,
tlist=콜리스트 ;
);
);
dt1_L0 << 스택 (
기둥 ( ( 티리스트 ) ) ,
소스 라벨 열 ( "상표" ) ,
누적 데이터 열 ( "데이터" ) ,
출력 테이블 ( "L5" )
) ;
여기서 "if" 문이 올바른지조차 모르겠습니다. ... 저의 무지함을 용서해주세요
Columnlist를 사용하여 많은 열을 쌓는 방법안녕 MS,
빠른 답변 감사합니다. 저는 JSL의 초보자이므로 언어를 배우는 방법을 모릅니다. 스택이 목록을 인수로 받아들인다는 것을 아는 것이 좋습니다.
질문을 더 확장해서 질문할 수 있습니까? 목록에서 쌓을 몇 개의 열만 선택할 수 있는 방법은 무엇입니까? 예를 들어 처음 3개의 열을 쌓고 싶지 않습니다. 이를 위해 필요한 열 이름을 저장할 새 목록을 만들 수 있습니까(콜리스트에서 처음 3개의 열 이름 삭제).
네, 이전 항목에 대한 해결책을 찾아 삭제했습니다.
정말 고마워!
Re: Columnlist를 사용하여 많은 열을 쌓는 방법스택은 목록을 인수로 사용하므로 여기서는 훨씬 간단한 방법으로 수행할 수 있습니다.
충돌하다 = dt1_L5 << 열 이름 가져오기 ;
dt1_L0 << 스택 (
기둥 ( ( 충돌하다 ) ) ,
소스 라벨 열 ( "상표" ) ,
누적 데이터 열 ( "데이터" ) ,
출력 테이블 ( "L5" )
) ;
플랫폼 명령 내에서 for 루프를 사용하지 마세요. 그런데 이전 질문에 대한 답변을 제출하려고 했으나 "답글 추가"를 누르기 전에 해당 질문이 삭제되었습니다. 아마도 당신은 이미 해결책을 찾았을 것입니다. 그러나 이에 대한 저의 의견은 다음과 같습니다. 다시 말하지만, 일부 명령은 인수를 평가하지 않을 수 있으므로 플랫폼 내부의 for 루프가 항상 작동하지 않을 수 있습니다(예: 인용된 문자열이 필요함).
월간 목록 = { 4 , 5 , 7 , 9 , 11 , 12 } ;
바람 = 새창 ( "이변량" ,
dt1_L0 << 이변량 ( 와이 ( : 데이터 ) , 엑스 ( : 가격 ) , 에 의해 ( : 월 ) )
) ;
을 위한 ( 나 = 1 , 나 <= N개 품목 ( 월간 목록 ) , 나 ++,
바람 [ 1 , 나 , 프레임박스 ( 1 )] << { 프레임 크기 ( 633 , 249 ) ,
행 범례 ( : 바닥 ,
색상 테마 ( "JMP 기본값" ) ,
마커 테마 ( "기준" ) ,
)}
) ;