루프에서 열 이름 사용<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />JMP 전문가 여러분,
반복되는 열이 많은 테이블이 있습니다.
A_X1_Y1, A_X1_Y2, ....A_X1_Y99, A_X2_Y1, A_X2_Y99, ...
B_X1_Y1, B_X1_Y2, ....B_X1_Y99, B_X2_Y1, B_X2_Y99, ...
즉, Xi, i=1, 99, Yj, j=1,20,
여러 열을 추가하려면:
C_Xi_Yj = A_Xi_Yj - B_Xi_Yj
C_?, 어디에 C_? = 아_? - B_?
Xi, Yj와 함께 루프를 사용할 수 있습니까? 아니면 C_와 같이 더 추상적인 것을 사용할 수 있습니까? = A_?-B_?
감사,
첸
Re: 루프에서 열 이름 사용이것을 이해하는 데 시간이 걸립니다. 아주 멋진 아이디어입니다.
감사!
-------------------------------------------------- -------------------------------------------------- ------------------------------------
매우 큰 테이블의 경우 행렬 연산을 기반으로 하는 솔루션이 더 효율적일 수 있습니다.
예;
// 스크립트는 열이 올바른 순서로 있다고 가정합니다. 먼저 모든 A가 그 다음 모든 B가 같은 순서로 정렬됩니다.
//dt<<이름으로 재정렬;
N = ncol ( dt ) ;
AB = dt << 행렬로 가져오기 ;
씨 = AB [ 0 , 1 :: N / 2 ] - AB [ 0 , N / 2 + 1 :: N ] ;
dt << 세트 매트릭스 ( 씨 ) ;
~을 위한 ( 나 = 1 , 나 <= 삼 , 나 ++,
~을 위한 ( 제이 = 1 , 제이 <= 4 , 제이 ++,
안부 = 열 ( N + 1 ) ; 안부 << 세트 이름 ( "C_X" || 숯 ( 나 ) || "_와이" || 숯 ( 제이 )) ; N ++
)) ;
Re: 루프에서 열 이름 사용감사!
이 evalinsert는 정말 도움이 됩니다. 이제 코드가 작동합니다!
친애하는,
첸
Re: 루프에서 열 이름 사용매우 큰 테이블의 경우 행렬 연산을 기반으로 하는 솔루션이 더 효율적일 수 있습니다.
예;
// 스크립트는 열이 올바른 순서로 있다고 가정합니다. 먼저 모든 A가 그 다음 모든 B가 같은 순서로 정렬됩니다.
//dt<<이름으로 재정렬;
N = ncol ( dt ) ;
AB = dt << 행렬로 가져오기 ;
씨 = AB [ 0 , 1 :: N / 2 ] - AB [ 0 , N / 2 + 1 :: N ] ;
dt << 세트 매트릭스 ( 씨 ) ;
~을 위한 ( 나 = 1 , 나 <= 삼 , 나 ++,
~을 위한 ( 제이 = 1 , 제이 <= 4 , 제이 ++,
안부 = 열 ( N + 1 ) ; 안부 << 세트 이름 ( "C_X" || 숯 ( 나 ) || "_와이" || 숯 ( 제이 )) ; N ++
)) ;
Re: 루프에서 열 이름 사용Evalinsert() 함수를 확인하십시오. 예를 들어 카운터에 의존하는 공식을 지정할 때 유용할 수 있습니다.
수식 열이 있는 예:
// 예제 테이블 만들기
dt = 새 테이블 ( "테스트" ) ;
~을 위한 ( 나 = 1 , 나 <= 삼 , 나 ++,
~을 위한 ( 제이 = 1 , 제이 <= 4 , 제이 ++,
dt << 새 열 ( "도끼" || 숯 ( 나 ) || "_와이" || 숯 ( 제이 ) , 숫자 , 가치 ([ 5 , 6 ]))
)) ;
~을 위한 ( 나 = 1 , 나 <= 삼 , 나 ++,
~을 위한 ( 제이 = 1 , 제이 <= 4 , 제이 ++,
dt << 새 열 ( "B_X" || 숯 ( 나 ) || "_와이" || 숯 ( 제이 ) , 숫자 , 가치 ([ 2 , 2 ]))
)) ;
// 수식 열 추가
에프 = 특급 ( 분석하다 ( 에블린서트 ( "도끼" || "^char(i)^" || "_와이" || "^char(j)^-B_X" || "^char(i)^" || "_와이" || "^char(j)^" ))) ;
~을 위한 ( 나 = 1 , 나 <= 삼 , 나 ++,
~을 위한 ( 제이 = 1 , 제이 <= 4 , 제이 ++,
dt << 새 열 ( "C_X" || 숯 ( 나 ) || "_와이" || 숯 ( 제이 ) , 숫자 , 공식 ( 평가 ( 에프 )))
)) ;
Re: 루프에서 열 이름 사용여기 내 실패한 시험이 있습니다. 누군가 도와주세요.
( 나는 = 1, 나는 <= 3, 나는 ++,
( j = 1, j <=4, j++,
col_new_name="C_"||char(i)||"_"||char(j);
데이터 테이블(dt_out) << 여러 열 추가(col_new_name, 1, "숫자");
구문 분석 (col_new_name) << 수식 ( ascolumn (parse("A_"||char(i)||"_"||char(j)) -
ascolumn (parse("B_"||char(i)||"_"||char(j)) );
);
);
수정된 이름이 있는 열이 내 테이블에 추가되지만 공식은 말 그대로 다음과 같습니다.
parse("A_"||char(i)||"_"||char(j))-parse("B_"||char(i)||"_"||char(j)
나는 또한 'parse' 없이, ascolumn 없이 eval(parse (*))을 시도했습니다. 아무 것도 작동하지 않습니다.
도와주세요.
감사,
첸