<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />여러분 안녕하세요,
좀 더 숙련 된 JMP 사용자로부터 다음 문제에 대한 조언을 찾고 있습니다.
자주 단위 당 최대 4 개의 행을 포함하는 데이터 테이블로 작업해야합니다. 그러나 일부 시스템 매개 변수는 해당 단위와 연관된 다른 행에도 적용 가능하지만 개별 단위의 첫 번째 항목에 대해서만 기록됩니다.
데이터를 분석하고 그룹화하려면 이러한 시스템 매개 변수가 유닛의 모든 행에 대해 완료되어야합니다.
데이터베이스에 기록하는 데이터를 변경할 기회가 없기 때문에 분석을하기 전에 데이터베이스를 추출한 후이를 처리해야합니다.
따라서 아래에 나와있는 해결 방법을 만들었습니다.
원하는 결과를 제공하지만 매우 느리고 실제로 행 수가 1000 개가 넘는 데이터 테이블에는 적합하지 않습니다.
dt = 현재 데이터 테이블 ();
dt << 정렬 (By (: 단위), Order (오름차순), Replace Table);
: param_1 << 수식 (각 행 (param_1 [행 () + 1] = (if (: unit [row ()] == : unit [row () + 1]
: param_1 [row ()], : param_1 [row () + 1])),
),
평가 공식
);
나는이 문제를 해결하는보다 효율적이고 우아한 방법이있을 것이라고 확신하지만, 나의 기술은 매우 제한적이라는 것을 인정해야한다.
경험이 많은 사용자의 의견을 환영합니다.
감사,
루츠
고마워. 오늘 사무실에서 코드를 테스트 할 것입니다.
내 코드를 40,000 개의 행 테이블에 대해 테스트 한 결과 1 초 이내에 돌아 왔습니다.
이 코드를 사용해보십시오. Unit이라는 열과 Param_1이라는 열이있는 두 개의 열이있는 테이블이 있다고 가정합니다. 나는 성능 테스트를하지 않았지만, 테이블을 꽤 빨리 통과 할 수 있습니다. 값이 필요한 경우에만 값을 설정합니다.
dt = 새 테이블 ( "Unit-Param 예제" ,
행 추가 ( 16 ) ,
새 열 ( "단위" ,
캐릭터 ,
명사 같은 ,
값 설정 (
{ "에이" , "에이" , "에이" , "에이" , "비" , "비" , "비" , "비" , "기음" , "기음" , "기음" , "기음" , "디" , "디" ,
"디" , "디" }
)
) ,
새 열 ( 'Param_1' ,
숫자 ,
마디 없는 ,
체재 ( "베스트" , 12 ) ,
값 설정 ( [ 32 , 32 , 32 , 32 , 25 명 , . , . , . , . , 14 , . , . , . , . , 13 , . ] )
)
) ;
// 단위와 매개 변수로 정렬하여 누락 된 경우 세트의 2, 3, 4 위치에 놓습니다.
dt << 종류 ( 으로 ( : 단위 , : param_1 ) , 주문 ( 오름차순 , 하강하는 ) , 표 바꾸기 ) ;
// 첫 번째 행 값 가져 오기
old_unit = dt : 단위 [ 1 ] ;
old_param = dt : param_1 [ 1 ] ;
...에 대한 ( 나는 = 2 , 나는 <= 안주 ( dt ) , 나는 ++,
one_unit = dt : 단위 [ 나는 ] ;
one_param = dt : param_1 [ 나는 ] ;
만약 ( one_unit == old_unit & 누락 ( one_param ) ,
dt : param_1 [ 나는 ] = old_param ;
) ;
만약 ( one_unit ! = old_unit ,
old_unit = one_unit ;
old_param = dt : param_1 [ 나는 ] ;
) ;
) ;