한 테이블의 열 데이터를 이미 존재하는 테이블에 추가안녕하세요,
하나의 출력 테이블 ( "출력"이라고 불리는)의 컬럼 데이터를 기존 테이블 ( "Stanmore and Lam")에 추가하려고하는데, join 명령을 사용하면 빈 출력 테이블이 생성됩니다. 내 코드는 다음과 같습니다.
output = New Table( "Output",
AddRows( 1 ),
New Column( "Y (coronal) mm", Numeric, Continuous ),
New Column( "X (sagittal) mm", Numeric, Continuous )
);
:"Y (coronal) mm" << addRows( 1 );
:"X (sagittal) mm" << addRows( 1 );
:"Y (coronal) mm"[1] = ymax;
:"X (sagittal) mm"[1] = xmax;
dt2 = Open( "Stanmore and Lam.jmp" );
dt2 << Join(
With( Data Table( output ) ),
By Matching Columns( :"Y (coronal) mm" = :"Y (coronal) mm", :"X (sagittal) mm" = :"X (sagittal) mm" )
);
한 테이블에서 다른 테이블로 데이터를 수동으로 입력하지 않고 특정 열의 행 값을 기존 열 (두 테이블의 열과 행 수가 다름)에 추가하는 방법이 있습니까? 감사!
남자 이름
Re : 기존 테이블에 한 테이블의 열 데이터 추가위에서 제안한 코드에 다음을 추가하여 참조를 설정할 수있었습니다.
toBeConcat = dt2 << Join(
With( Data Table( output ) ),
"Stanmore and Lam",
Update,
By Matching Columns(
:Name( "Y (coronal) mm" ) = :Name( "Y (coronal) mm" ),
:Name( "X (sagittal) mm" ) = :Name( "X (sagittal) mm" )
)
);
dt2 << Concatenate( toBeConcat, append to first table );
이 1) 내 출력 형식을 Stanmore 및 Lam 테이블의 형식에 맞게 업데이트하고 2) 새 출력 데이터 테이블을 만들지 않고 해당 출력을 원본 테이블에 연결합니다. 이제 코드는 내가 필요로하는 것과 정확히 일치합니다. 도와 줘서 고마워!
Re : 기존 테이블에 한 테이블의 열 데이터 추가"UPDATE"옵션에 대한 내 의견은 그것을 처리 할 것입니다. 추가 만하면됩니다.
최신 정보,
귀하의 조인에게, 그것은 당신이 원하는 것을 처리 할 것입니다.
Re : 기존 테이블에 한 테이블의 열 데이터 추가빠른 답변 감사합니다! 이 구문은 필자가 필요로하는 값으로 새 테이블을 채우는 데 훨씬 효과적입니다. 이것은 여전히 완전히 새로운 테이블을 생성합니다. 그래서 "Stan and Lanmore"테이블에 연결할 수 있도록 참조를 설정할 수있는 방법이 있습니까? 다시 한 번 감사드립니다!
남자 이름
Re : 기존 테이블에 한 테이블의 열 데이터 추가구문을 적절하게 만들기 위해 스크립트를 수정했습니다. 변수 xmax 및 ymax가 포함되지 않았거나 "Stanmore and Lam"데이터 테이블에 포함 된 것이 없으므로 논리를 말할 수 없습니다.
output = New Table( "Output",
AddRows( 1 ),
New Column( "Y (coronal) mm", Numeric, Continuous ),
New Column( "X (sagittal) mm", Numeric, Continuous )
);
// You don't add rows to columns, you add rows to data tables. But since you have allready added
// a row to the new data table, you don't need to add a second row
//:"Y (coronal) mm" << addRows( 1 );
//:"X (sagittal) mm" << addRows( 1 );
// The proper form for what you are trying to do is:
// :Name("complex name")
//:"Y (coronal) mm"[1] = ymax;
//:"X (sagittal) mm"[1] = xmax;
:Name("Y (coronal) mm")[1] = ymax;
:Name("X (sagittal) mm")[1] = xmax;
dt2 = Open( "Stanmore and Lam.jmp" );
dt2 << Join(
With( Data Table( output ) ),
// You may want to use the "UPDATE" option to copy the matching rows from the joining table to the
// initial table
// Update,
// The proper naming structure has been replaced here too
By Matching Columns( :Name("Y (coronal) mm") = :Name("Y (coronal) mm") , :Name("X (sagittal) mm") = :Name("X (sagittal) mm") )
);