제목 : Re : 보조 컬럼을 추가하지 않고 직접 어떻게 비교 결과를 얻을 수 있습니까?짐 감사합니다!
그래서 제가 생각할 첫 번째 방법은 많은 양의 데이터가 연속적으로있을 때 메모리를 사용하여 더 빨리 수행 할 수 있다는 것입니다.제목 : Re : 보조 컬럼을 추가하지 않고 직접 어떻게 비교 결과를 얻을 수 있습니까?그리고 다시 물어 보겠습니다. 첫 번째 방법을 시도했는데 결과가 없습니다. 내가 실수 한 부분을 알 수 없습니다. 감사합니다!제목 : Re : 보조 컬럼을 추가하지 않고 직접 어떻게 비교 결과를 얻을 수 있습니까?첫 번째 코드 연산의 결과
고맙습니다!

제목 : Re : 보조 컬럼을 추가하지 않고 직접 어떻게 비교 결과를 얻을 수 있습니까?나는 당신이 " 보조 열을 추가하지 않고 직접 획득 "; 나는 2 개의 간단한 스크립트를 조합했다. 첫 번째 것은 결과를 생성 할 불필요한 열을 작성하지 않으므로 엄격하게 명령문을 준수합니다. 그러나이 방법은 비효율적이며 데이터 테이블이 커지면 확장되지 않습니다.
Names Default To Here( 1 );
d1 = Open( "$SAMPLE_DATA/Trial1.jmp" );
d2 = Open( "$SAMPLE_DATA/Trial2.jmp" );
// Create the new column by comparing values between the data tables
d2 << New Column( "Result",
formula(
compare = d1:yield[((d1 <<
get rows where(
d1:popcorn == d2:popcorn & d1:oil amt == d2:oil amt &
d1:batch == d2:batch ))[Row()])];
If( compare > d2:yield[Row()],
theResult = 1,
theResult = 0
);
theResult;
)
);
// Change the values of the column Result to static values by removing
// the formula
d2:Result << delete property( "formula" );
두 번째 예제는 매우 효율적이지만 임시 추가 열을 사용하지만 결과는 동일합니다.
Names Default To Here( 1 );
d1 = Open( "$SAMPLE_DATA/Trial1.jmp" );
d2 = Open( "$SAMPLE_DATA/Trial2.jmp" );
// Temp. change of the name of the Yield column in data table 1
d1:yield << set name("yield1");
// Copy the Yield1 column to data table 2
d2 << Update(
With( d1 ),
Match Columns( :popcorn = :popcorn, :oil amt = :oil amt, :batch = :batch ),
Add Columns from Update table( :yield1 )
);
// Change the Yield1 column in data table 1 back to it's original name
d1:yield1 << set name("yield");
// Create and calculate the Result column in data table 2
d2 << new column("Result", formula(
If(:yield1 > :yield, 1,0);
));
// Change the values of the column Result to static values by removing
// the formula
d2:Result << delete property( "formula" );
// Delete the no longer needed Yield1 column
d2<<DELETE columns=""></DELETE>
보조 컬럼을 추가하지 않고 어떻게 비교 결과를 직접 얻을 수 있습니까?안녕, 모두들!
동일한 명세의 2 개의 테이블의 수확량은 다르다,
보조 컬럼을 추가하지 않고 직접 비교 결과를 얻을 수 있습니까?
결과는 표 2에 나와 있습니다. 표 1의 산출량이 표 2의 산출량보다 큰 경우 결과는 1입니다. 그렇지 않은 경우 결과는 0입니다.
d1 = Open( "$SAMPLE_DATA/Trial1.jmp" );
d2 = Open( "$SAMPLE_DATA/Trial2.jmp" );
감사!
제목 : Re : 보조 컬럼을 추가하지 않고 직접 어떻게 비교 결과를 얻을 수 있습니까?JMP 로그에 어떤 메시지가 있습니까?
또한, 첫 번째 방법에 대한 코드의 마지막 줄에 사본이 잘못되었습니다.
" 두번째"
미스가 복사되었습니다. 코드에 없는지 확인하십시오.
제목 : Re : 보조 컬럼을 추가하지 않고 직접 어떻게 비교 결과를 얻을 수 있습니까?(d1 : 팝콘 == d2 : 팝콘 & d1 : 오일 amt == d2 : 오일 amt & d1 : d1)의 액세스 또는 평가에서 잘못된 첨자 (번호 또는 숫자 목록이어야 함) {1} 배치 == d2 : 배치)) [행 ()] ', (d1 << 행을 얻을 어디 (
d1 : 팝콘 == d2 : 팝콘 & d1 : 오일 amt == d2 : 오일 amt & d1 : 배치 == d2 : 배치
))[/*###*/열()]
짐 감사합니다!

제목 : Re : 보조 컬럼을 추가하지 않고 직접 어떻게 비교 결과를 얻을 수 있습니까?그건 착각 인 것 같다.
제목 : Re : 보조 컬럼을 추가하지 않고 직접 어떻게 비교 결과를 얻을 수 있습니까?나는 무엇을 말할 지 모른다. JMP Pro에서 코드를 실행하여 JMP 11로 돌아 왔고 실패 할 수 없습니다. 나는 Window 's 10에서 뛰고있다.
불일치를 더 자세히 조사하려면 JMP 지원 부서로 가져 가야 할 수도 있습니다.제목 : Re : 보조 컬럼을 추가하지 않고 직접 어떻게 비교 결과를 얻을 수 있습니까?내가 참조. 짐 감사합니다!제목 : Re : 보조 컬럼을 추가하지 않고 직접 어떻게 비교 결과를 얻을 수 있습니까?여기에 또 다른 접근 방법이 있습니다. 이것은 행렬을 사용합니다. 그것은 매트릭스와 데이터 테이블 사이에 몇 가지 가정을하지만, 희망이 있다면 충분히 시작할 수 있습니다.
Names Default To Here( 1 );
sourceTable = Data Table( "Trial1" );
resultsTable = Data Table( "Trial2" );
convertToMatrix = Function( {dt},
{Default Local},
mtrx = dt << get all columns as matrix;
numberOfColumns = N Col( mtrx );
For( i = 1, i <= numberOfColumns - 1, i++,
mtrx[0, i] *= 10 ^ (i - 1);
If( i > 1,
mtrx[0, i] = mtrx[0, i] + mtrx[0, i - 1]
);
);
mtrx[0, 1 :: numberOfColumns - 2] = [];
mtrx;
);
sourceMatrix = convertToMatrix( sourceTable );
resultsMatrix = convertToMatrix( resultsTable );
numberOfResults = N Row( resultsMatrix );
results = J( numberOfResults, 1, 0 );
For( i = 1, i <= numberOfResults, i++,
key = sourceMatrix[i, 1];
value = sourceMatrix[i, 2];
index = Loc( resultsMatrix == key ) + 1;
results[Floor( index / 2 )] = resultsMatrix[index] < value;
);
resultsTable << New Column( "Result", numeric, "continuous", values( results ) );제목 : Re : 보조 컬럼을 추가하지 않고 직접 어떻게 비교 결과를 얻을 수 있습니까?이 메모리 배열을하는 법을 배우려고합니다. 정말 고맙습니다!