2014-05-13 3 views
0

나는 주제와 관련된 이전 링크를보고 명령을 시도했지만 오류가 표시됩니다. 나 변수 VAR1가 = 센서스 관은 길이 (25)의 문자 형식으로 244.1 난 수만 244.1 및 포맷 숫자이어야 포함하는 최종 변수를 필요문자 및 숫자 변수가있는 변수를 sas의 숫자 변수로 변환하는 방법

난 다음 명령을 사용했을 newvar = input (var1, 8.) 하지만 INPUT 함수에 잘못된 인수로 언급하는 오류가있었습니다.

또한 다음과 같이 사용했습니다.newvar = input (var1, best32.) 그러나 위와 같은 오류 메시지가 다시 나타납니다.

나는 'census tract'라는 단어를 제거하려고했습니다 : TRACT = tranwrd (var1, "Census Tract", ''); 메시지에 var1이 문자 및 숫자 변수로 정의되어 있다고 대답했습니다.

옵션이 부족합니다. 그래서 도움이 필요해. 난 당신이 두 단계에서이 작업을 수행해야합니다 SAS 9.3

+0

데이터 단계를 사용하는 경우 질문에서 "sql"태그를 제거해야합니다. –

답변

1

을 사용하고 있습니다 : 우리는 244.1에만 관심이 있기 때문에

"244.1"

을 문자를 추출, 우리는거야 나머지를 없앤다. 이것은 여러 가지 방법으로 이루어 졌을 수 있습니다. 그 중 하나는 당신이 지적한대로 변합니다.

var2 = substr(var1, 13, 6); 

숫자 우리는 문자 값을 가지고 숫자로 변환 할 필요가 244.1

에 문자 값 "244.1"를 변환합니다. 입력 함수는 문자 값을 받아 정보를 사용하여 숫자로 변환 할 수있게합니다. informat는 sas에게 값을 해석하는 방법을 알려주는 방법 일뿐입니다. 이 경우 8 바이트로 저장된 숫자로 처리하십시오.

var3 = input(var2, 8.); 

전체 예제 프로그램 :

data work.one; 

    var1 = "census tract 244.1"; 
    var2 = substr(var1, 13, 6); 
    var3 = input(var2, 8.); 

run; 

/* Show that var3 is a numeric variable */ 
proc contents data=work.one; 
run; 

보너스 정보 번이 되었기 때문에 당신이 원래 "VAR1"변수로 변환 된 값을 저장할 수 없습니다

주 문자 변수로 선언하면 숫자를 저장할 수 없습니다. 동일한 변수를 유지하고 싶다면 var1을 삭제해야합니다. var3을 var1로 바꿉니다.

drop var1; 
rename var3=var1; 
관련 문제