테이블에서 테이블로 열 하위 집합 또는 셀 범위 복사두 개의 데이터 테이블이 있습니다. table2의 일부 열은 table1 열과 동일합니다.
동일한 열의 데이터를 table2에서 table1로 복사하지 않았습니다.
이것은 물론 (1) table1이 table2의 행 수로 확장되고 (2) table1에 누락된 데이터가 있음을 의미합니다. 괜찮아.
내 문제는 table2에서 table1로 데이터를 복사하는 방법입니다.
예 - 두 테이블 모두 "NAME" 열이 있습니다. Table1에는 1000개의 행이 있고 table2에는 2000개의 행이 있습니다.
결과는 3000개의 행이 있는 table1이고 table1의 "NAME"은 두 NAME 열의 "연결"이 됩니다. table1의 다른 열에는 2000개의 누락/비어 있는 데이터가 있습니다.
그런데 실제로는 테이블이 훨씬 더 크고 동일한 열이 10-20개 있습니다(~100개 중). 기본적인 기능을 파악한 후 다루도록 하겠습니다. 이러한 크기에 문제가 있는 경우에 대비하여 언급합니다.
많은 감사
Re: 테이블에서 테이블로 열 하위 집합 또는 셀 범위 복사예를 들어 나에게 뭔가 효과가 없었습니다.
하지만 신경 쓰지 마세요. 아이디어를 얻었고 몇 가지 입력 파일에 대한 테스트 실행과 함께 작동하는 것 같았습니다.
곧은 길이 코앞에 있는데 쓸데없이 복잡한 일을 한 것 같다.
기다려 주셔서 감사합니다.
Re: 테이블에서 테이블로 열 하위 집합 또는 셀 범위 복사
@RonB 쓴 :
예, 이해합니다. 그러나 내가 다루고 있는 데이터 구조는 Fitness에서 같은 이름을 갖지 않는 Big Class의 열도 복사해야 합니다. 즉, 이러한 열은 새 열로 출력 테이블에 "수직으로 연결"됩니다. 이러한 열은 Big Class의 데이터가 뒤따르는 누락된 데이터(피트니스에 있는 만큼의 행)로 시작합니다.
처음에 단순히 두 테이블을 연결하는 것과 어떻게 다릅니까? 이렇게 하면 두 테이블의 모든 행과 모든 열이 포함된 테이블이 생성됩니다. 두 테이블에서 일치하는 이름이 없는 열은 원래 해당 열이 없었던 행에 대해 비어 있습니다.
추상적인 얘기는 그만하고 좀 더 구체적으로 얘기하자. 다음은 두 개의 테이블입니다.
1 번 테이블
표2
이 두 테이블에서 Tables->Concatenate를 사용하면 이 테이블이 됩니다.
표3
| ㅏ |
비 |
씨 |
디 |
| 1 |
1 |
1
|
• |
| 2 |
2 |
2 |
• |
| 삼 |
삼 |
삼 |
• |
| 4 |
4 |
• |
4 |
| 5 |
5 |
• |
5 |
| 6 |
6 |
• |
6 |
위의 설명을 해석하는 방식은 이것이 원하는 테이블이라고 생각하게 만듭니다. 그렇지 않은 경우 귀하의 요구 사항을 오해하여 죄송합니다.
Re: 테이블에서 테이블로 열 하위 집합 또는 셀 범위 복사예, 이해합니다. 그러나 내가 다루고 있는 데이터 구조는 Fitness에서 같은 이름을 갖지 않는 Big Class의 열도 복사해야 합니다. 즉, 이러한 열은 새 열로 출력 테이블에 "수직으로 연결"됩니다. 이러한 열은 Big Class의 데이터가 뒤따르는 누락된 데이터(피트니스에 있는 만큼의 행)로 시작합니다.
나는 Big Class의 모든 이름이 다른 새로운 열을 Fitness에 먼저 추가함으로써 할 수 있다고 생각합니다. 당신이 나에게 보여준 것과 같은 방법을 사용하는 것보다 이 열만으로 Big Class를 부분 집합화하고 연결을 수행하십시오.
그것은 많은 작업이지만 내가 가지고 있는 많은 수의 테이블과 열을 처리할 다른 방법이 없습니다.
다시한번 감사드립니다
Re: 테이블에서 테이블로 열 하위 집합 또는 셀 범위 복사
@RonB 쓴 :
이제 일치하지 않는 열을 복사하는 방법을 알아내야 하지만 관리할 수 있을 것 같습니다.
일치하지 않는 열이 있는 테이블은 무엇입니까? 위의 예는 Fitness 테이블의 모든 열을 유지하고 Big Class에서 이름이 같은 열만 연결합니다. 동일한 이름을 가진 열을 가져오기 위해 Big Class만 부분 집합화한 다음 이를 Fitness(여전히 모든 열이 있음)에 연결하여 이를 수행합니다.일치하지 않는 열을 유지하기 위한 작업이 없어야 합니다.
Re: 테이블에서 테이블로 열 하위 집합 또는 셀 범위 복사일했다. 감사합니다. 이제 일치하지 않는 열을 복사하는 방법을 알아내야 하지만 관리할 수 있을 것 같습니다.
Re: 테이블에서 테이블로 열 하위 집합 또는 셀 범위 복사시도해보고 다시 보고하겠습니다(관련 없는 상황으로 인해 시간이 걸릴 수 있음).
많은 tx
Re: 테이블에서 테이블로 열 하위 집합 또는 셀 범위 복사
@RonB 쓴 :
내가 당신을 이해한다면 열 ea가 있는 table2.1을 생성하고 열이 ae가 되도록 재정렬하고 table2.1을 table1에 연결해야 합니까?
그래도 열을 재정렬할 필요는 없습니다. 테이블->위치가 아닌 열 이름에 대한 일치 항목을 연결합니다.
하위 집합은 열 선택에 의존하므로 두 테이블 간에 공통되는 열을 선택해야 합니다. 그러나 table1에서 모든 열 이름을 가져오고 table2에 대해 전체 목록을 선택할 수 있기 때문에 쉽습니다. 존재하지 않는 항목은 무시됩니다.
다음은 두 개의 샘플 데이터 테이블을 사용하는 예입니다.
bc = Open( "$SAMPLE_DATA\Big Class.jmp" );
fit = Open( "$SAMPLE_DATA\Fitness.jmp" );
fit_cols = fit << get column names;
bc << select columns( fit_cols );
sub_bc = bc << Subset( All rows, Selected columns only( 1 ) );
fit << Concatenate( sub_bc );
//if you don't want a new table you can use "Append to first table"
fit << Concatenate( sub_bc, Append to first table );
Re: 테이블에서 테이블로 열 하위 집합 또는 셀 범위 복사좋아요. 좋은 격려.
Table1에는 abcde 열이 있고 table2에는 xyezau v 열이 있습니다. table2의 열만 table1에 연결하고 싶습니다. 어떻게 하시겠습니까?
내가 당신을 이해한다면 열 ea가 있는 table2.1을 생성하고 열이 ae가 되도록 재정렬하고 table2.1을 table1에 연결해야 합니까?
Re: 테이블에서 테이블로 열 하위 집합 또는 셀 범위 복사Tables->Concatenate와 같은 내장 기능을 너무 빨리 포기하지 마십시오.
두 테이블 사이에 이름이 같은 열만 필요한 경우 Tables->Subset을 사용하여 각 테이블에서 해당 열만 있는 두 테이블을 만든 다음 이 두 테이블을 연결할 수 있습니다.
Re: 테이블에서 테이블로 열 하위 집합 또는 셀 범위 복사다시 한번 감사드립니다. 불행하게도 내 데이터 세트의 기괴한 특성으로 인해 연결이 수행되지 않습니다.
테스트를 무시하고 특정 열만 연결해야 합니다.
항상 소스 테이블의 모든 행을 반복하고 대상 테이블에 행을 삽입하고 열 값을 하나씩 설정할 수 있습니다. 하지만 CPU를 독차지할까봐 두렵습니다. 내 스크립트는 수십 개의 열과 수천 개의 행이 있는 100개 이상의 파일을 처리할 것입니다. 게다가, 비록 불가피하긴 하지만 우아한 해결책은 아닙니다.
내 질문을 단순화하겠습니다.
그런 식으로 할 수 있습니까?
Column(dt, i)[from,to] = 목록 또는 값의 행렬
기다려 주셔서 감사합니다.
Re: 테이블에서 테이블로 열 하위 집합 또는 셀 범위 복사연결은 일치하지 않는 열을 무시하지 않습니다.다음은 Big Class 및 Big Class Families, 샘플 데이터 테이블을 사용하는 샘플입니다.Big Class 데이터 테이블은 원래 Big Class 데이터 테이블에 없는 Big Class Families에 있는 모든 열로 끝납니다.
Names Default To Here( 1 );
dt1 = Open( "$SAMPLE_DATA/big class.jmp" );
dt2 = Open( "$SAMPLE_DATA/big class families.jmp" );
dt1 << concatenate( dt2, Append to First Table( 1 ) );
Re: 테이블에서 테이블로 열 하위 집합 또는 셀 범위 복사감사해요.
Concatenate 함수는 두 테이블에서 동일한 열에 대해서만 수행하고 다른 모든 열은 건너뛰어야 하기 때문에 수행하지 않습니다.
원본 열 데이터를 행렬/목록에 저장하려고 시도하고 [I,j] 구독을 사용하여 대상 열(두 번째 테이블)에 값을 설정하는 것보다 뭔가 빠진 것 같습니다.
Re: 테이블에서 테이블로 열 하위 집합 또는 셀 범위 복사JMP에서 자동으로 코드를 생성하도록 할 수 있습니다.
실행
테이블==>연결
새 데이터 테이블에서 데이터 테이블의 왼쪽에 있는 테이블 패널로 이동하여 "소스" 항목을 마우스 오른쪽 버튼으로 클릭하고 "편집"을 선택합니다.파일을 함께 연결하는 데 필요한 JSL이 표시됩니다.
JSL은 기본적으로
dt1=data table(<YOUR first="" table="">);
dt2=data table(<YOUR second="" table="">);
dt1 = dt1 << concatenate( dt2, Append to First Table(1));</YOUR></YOUR>
Re: 테이블에서 테이블로 열 하위 집합 또는 셀 범위 복사감사해요. 나는 그것에 대해 생각했다. 그런데 그런 파일이 많고 컬럼의 순서가 하나씩 바뀌기 때문에 스크립트로 해야 합니다.
나는 그것을 할 몇 가지 코드를 알아 내고 싶습니다.
감사해요
Re: 테이블에서 테이블로 열 하위 집합 또는 셀 범위 복사JMP는 다음을 사용하여 데이터 테이블을 연결합니다.
테이블==>연결
연결할 때 열 이름별로 열을 정렬합니다.누락된 값은 하나 또는 다른 데이터 테이블에 나타나지 않는 열의 행에 자동으로 추가됩니다.
연결 플랫폼은 일치하는 열의 이름을 그대로 유지하고 기본 데이터 테이블에 없는 열의 새 열 이름만 추가합니다.
설명서는 다음을 참조하세요.
도움말==>도서==>JMP 사용