마침표 '를 읽습니다.' 문자 변수의 값으로 사용하지만 공백 값으로 읽습니다.SAS에서 문자 값으로 마침표 읽기
data output1;
input @1 a $1. @2 b $1. @3 c $1.;
datalines;
!..
1.3
;
run;
Output Required
------ --------
A B C A B C
! ! . .
1 3 1 . 3
기간을 읽는 데 도움을주십시오.
마침표 '를 읽습니다.' 문자 변수의 값으로 사용하지만 공백 값으로 읽습니다.SAS에서 문자 값으로 마침표 읽기
data output1;
input @1 a $1. @2 b $1. @3 c $1.;
datalines;
!..
1.3
;
run;
Output Required
------ --------
A B C A B C
! ! . .
1 3 1 . 3
기간을 읽는 데 도움을주십시오.
출력은 그래서 $1.
는, 우선 정보 흐름 정의 변수 아이폰에 정의하고, 코드에 $1.
요청한 사용자의 경우 ($ w INFORMAT 사용되는 정보 흐름에 의해 결정되는데, 이것의 부작용이다).
$ char를 사용하십시오. 원하는 결과에 대한 정보를 제공하십시오. 문서에서
data output1;
input @1 a $char1. @2 b $char1. @3 c $char1.;
datalines;
!..
1.3
;
run;
:
$ INFORMAT 은 $ w w informat은 선행 공백을 트림하고 텍스트를 저장하기 전에 값을 왼쪽 정렬합니다. 또한 필드에 공백과 단일 마침표 만 있으면 $ w. 기간을 누락 된 값으로 해석하기 때문에 해당 기간을 공백으로 변환합니다. $ w. informat는 필드의 두 개 이상의 마침표를 문자 데이터로 취급합니다.$ CHARw. informat $ CHARw. informat은 선행 및 후행 공백을 잘라내거나 값을 저장하기 전에 입력 데이터 필드의 단일 기간을 공백으로 변환하지 않습니다.
나는 왜 그것이 작동하지 않는지 즉시 알 수 없습니다. 그러나 왜 작동하지 않는지 알아내는 데 관심이 없지만 한 가지 원하는 것이 있다면 : 길이 $ 3의 변수 1 개로 읽으십시오. 다음 단계에서; substr을 사용하여 분할하십시오.
예
data output1;
length tmp $3;
input tmp;
datalines;
!..
1.3
;
run;
data output2 (drop=tmp);
length a $1;
length b $1;
length c $1;
set output1;
a=substr(tmp,1,1);
b=substr(tmp,2,1);
c=substr(tmp,3,1);
run;
입력 해 주셔서 감사합니다. 그러나 나는 그것을 할 수없는 하나의 성격으로 읽어야한다. – athresh
이것은 엄청납니다! 많은 감사 – athresh