나중에 사용할 목록 열 이름 준비안녕하세요, 나중에 사용할 변수에 저장할 열 이름 목록을 검색하고 준비하려고 합니다. 문제는 << Get Column Names()가 모든 것을 문자열 목록으로 반환한다는 것입니다. 다음은 각 항목 문자열의 시작 부분에 " : "를 추가한 방법과 잠재적인 용도입니다. 아직 해야 할 일이 더 많습니다.
names default to here(1);
dt = current data table();
col_names = dt << Get Column Names( ); // retrieves all col names
col_list = {}; // list for holding col names
// loop formats names in way usable to be called on as cols, not strings
for( i = 1 , i <= N items( col_names ), i++,
list_item = ":" || list_item;
Insert Into( col_list, list_item );
);
dt << Ungroup Scripts( col_list ); // example usage또 다른 예는 이 목록을 다음과 같이 사용하는 것입니다.
모형 적합( Y( col_list ) ....
내가 얻는 것: { "ColA", "ColB" }
내가 원하는 것: { :ColA, :ColB }
나는 이것에 대해 여러 관련 스레드를 탐색하고 찾았지만 함수의 입력으로 열 이름을 사용하는 것은 내가 우연히 발견하지 못한 것입니다.어떤 충고?
해석학스크립팅윈도우Re: 나중에 사용할 수 있도록 목록 열 이름을 준비합니다.안녕,
나는 얼마 전에 같은 문제가있었습니다. 솔루션은 간단합니다. 목록을 평가하여 일련의 열을 반환해야 합니다.
dt << Ungroup Scripts( Eval (col_list ));
최고,
TS
Re: 나중에 사용할 수 있도록 목록 열 이름을 준비합니다.:colname 형식의 열을 사용하려는 경우 예를 들어 다음과 같이 열을 가져올 수 있습니다.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
col_names = dt << Get Column Names(Continuous, "String");
// dt << Get Column Reference(); /* all references */
/* one option */
col_list1 = dt << Get Column Reference(col_names);
/* second option */
col_list2 = Transform Each({col_name}, col_names,
Name Expr(AsColumn(Column(dt, col_name))); /* Column() isnt necessary but makes it more robust */
);
show(col_list1, col_list2);
일반적으로 문자열로 사용한 다음 상황에 따라 Column() 또는 As Column()을 사용합니다(일부 Name Expr() 포함).
Eval()과 결합하면 열 이름의 문자열 목록을 자주 사용하는 것으로 충분합니다.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Cities.jmp");
col_names = {"OZONE", "CO", "SO2", "NO", "PM10"};
//obj = dt << Cluster Variables(Y(:OZONE, :CO, :SO2, :NO, :PM10));
obj = dt << Cluster Variables(Y(Eval(col_names)));
col_list = Transform Each({col_name}, col_names,
Name Expr(AsColumn(Column(dt, col_name)));
);
obj = dt << Cluster Variables(Y(col_list)); /* wont work, see log for error */
/* Using Eval() and Eval Expr() */
cv_expr = EvalExpr(
obj = dt << Cluster Variables(Y(Expr(col_list)));
);
Eval(cv_expr);
/* using only Eval inside Y() should also work like earlier */
obj = dt << Cluster Variables(Y(Eval(col_list)));
Re: 나중에 사용할 수 있도록 목록 열 이름을 준비합니다.@Thierry_S & @jthi - 두 분 모두 감사합니다! eval() 내가 찾고 있던 것입니다! 열이 표현식이라는 것은 이해했지만 이 명령을 완전히 잊어버렸습니다.