2016-10-27 4 views
0

병합 할 seq 번호가있는 SAS 데이터 세트가 있습니다. 불행히도 일부 데이터 세트에서는 seq가 숫자이고 다른 문자는 문자입니다.병합시 변수를 숫자로 효율적으로 적용 할 수 있습니까?

ERROR: Variable seq has been defined as both character and numeric.

여러 테이블 병합하고 범인이 힘든 것입니다 테이블을 찾는되고 있습니다

나는 다음과 같은 오류가 발생합니다. 모든 테이블에서 병합 by 문에서 seq를 효율적인 방식으로 숫자에 적용 할 수 있습니까?

답변

1

아니요, 숫자에 직접 적용 할 수있는 방법이 없습니다 (단 하나의 길이의 문장을 넣는 것과 비슷한 방법은 없습니다). 데이터 집합을 기준으로 데이터 집합의 숫자로 변환해야합니다.

데이터 집합에 따라 데이터 집합에 어떤 유형이 있는지 염려하지 않고이를 수행 할 수있는 몇 가지 방법이 있습니다. 하나는 dictionary.columns에서 코드를 만드는 것입니다. 또 다른 방법은 모든 데이터 세트를 텍스트 파일에 쓰고 일관된 입력 문으로 다시 읽는 것입니다. 세 번째는 CATS를 사용하여 변수를 문자로 변환 한 다음 숫자로 입력하여 다시 읽는 것입니다.

1

병합 변수의 유형이 문자 인 각 데이터 세트의보기를 만들고보기 내에서 적절한 recode/drop/rename 논리를 적용한 다음 다른 데이터 세트와보기를 병합 할 수 있습니다. 많은 수의 데이터 세트에 대해이 작업을 수행해야하는 경우 로직을 간단한 매크로로 작성한 다음 루프를 반복 할 수 있습니다.

관련 문제