"13232C"와 같은 코드를 숫자 값으로 변환하려고합니다. 어쩌면 1에서 26까지의 값을 A부터 Z까지 할당 할 수 있습니다. 그러면 새 코드는 "132323"이됩니다.sas의 문자 값에서 숫자 값 만들기
답변
코드에 문자가 하나만있는 경우이 코드가 작동합니다. 그 이상이 있으면 값을 얻기 위해 각각을 스캔해야합니다. 필자는 ASCII 값 (A = 65)에서 64를 빼서 문자 값 (1-26)을 계산하고 필요한 경우 대문자로 변환해야합니다. 또한 문자는 항상 문자열 끝에 표시한다고 가정 한
data have;
input code $;
datalines;
132323C
24578D
5147896G
;
run;
data want;
set have;
new_code=input(cats(compress(code,,'dk'),rank(compress(upcase(code),,'ak'))-64),best12.);
run;
편지에서 계산 된 숫자를 참조해야하는 경우 새 변수를 문자로 유지할 수 있습니다. 이것은 원래 문자열이 고정 길이 인 경우에만 가능합니다. 예제에서는 가변 길이를 사용했습니다. 다행스럽게도 나는 당신에게 당신의 목적을 위해 수정을 가능하게하는 충분한 방법을주었습니다. – Longfish
좋은 해결책. 매우 우아합니다. – itzy
이 코드는 완벽하게 작동합니다. 대단히 감사합니다. – user2269241
키스의 솔루션은 대부분의 용도에 아마도 더 나은,하지만 난 (PROC FCMP 함께 플레이 할 수있는 좋은 기회로 이것을보고 도울 수 없어요 함수 컴파일). 이것은 A-I 만있는 경우에 잘 작동합니다. J로 시작하면 단일 문자의 공간 만 허용하기 때문에 작동하지 않습니다. 2 자리 숫자를 사용할 수 있다면 키스의 솔루션이 수행하도록 FCMP를 변경해야합니다.
proc fcmp outlib=work.funcs.trial;
function cton(charvar $) $;
do n = 1 to length(charvar);
if 48 le rank(char(charvar,n)) le 57 then ;
else substr(charvar,n,1) = put(rank(upcase(char(charvar,n)))-64,1.);
put charvar;
end;
return (charvar);
endsub;
quit;
options cmplib=work.funcs;
data test;
x="23456CAB";
y = cton(x);
put x= y=;
run;
나는 또한 문자로 반환,하지만 그건 중요하지 않아 - 당신이 선호하는 경우가 숫자로 반환 할 수 (나는 원래의 질문에 ""를 보았다).
- 1. 문자 및 숫자 변수가있는 변수를 sas의 숫자 변수로 변환하는 방법
- 2. % SAS의 알려진 문자 값 집합을 반복 처리합니다.
- 3. 문자 값 나누기 숫자
- 4. 자바의 문자열 값에서 숫자 값 가져 오기
- 5. 문자 TSQL의 숫자 값 너비?
- 6. SAS의 데이터 마스킹 : 문자 수준의 민감한 관찰
- 7. SAS의 큰 문자 필드 크기
- 8. 문자열 값에서 숫자 증가
- 9. SAS의 숫자 변수의 상한 및 하한
- 10. 서브 세트 숫자 값 및 특수 문자
- 11. 숫자 또는 값 오류 : 숫자 변환 오류 문자
- 12. 값에서 숫자 형식 가져 오기
- 13. Proc는 sas의 모든 열을 의미합니다.
- 14. 배열 값에서 함수 만들기
- 15. 값에서 열 만들기 - MySQL
- 16. 테이블 값에서 DataGridView 열 만들기
- 17. 단일 값에서 값 선택
- 18. 열 값에서 문자 제거 및 새 문자 추가
- 19. 문자 숫자 식별자와 스칼라에서 '$'문자
- 20. SAS의 다중 데이터 세트에서 n 샘플 만들기
- 21. 만들기 필요한 문자
- 22. 입력 값에서 값 가져 오기 각도 2
- 23. C 문자 값 산술
- 24. 데이터베이스 값에서 C# Treeview 만들기
- 25. 끝 값에서 문자열 범위 만들기
- 26. 열 고유 값에서 열 만들기
- 27. 문자열 값에서 PHP 함수 만들기
- 28. SlimDX로 RGBA 값에서 텍스처 만들기
- 29. JSlider 값에서 JLabel 값 변경
- 30. 선택 값에서 텍스트 값 복사
항상 1 문자 값이 있습니까? – Longfish