2013-07-15 2 views
1

테이블에 "variable"열이 있습니다. 이 칼럼은 기본적으로 아래와 같이 문자열로 저장됩니다. 이제이 문자열을 분리하고 "구분 기호"인 "공백"을 기반으로하는 열을 만들고 싶습니다. 그것에 대해 이동하는 방법을 다음을 수락 거부와 같은열의 문자열 연산 SAS

Rejct 2.00 Accept 4.00 

Reject 3.00 Accept 9.00 

Reject -4.00 Accept -6.00 

는 지금은 변수를 만들려면.

Reject Accept 

2.00 4.00 

3.00 9.00 

-4.00 -6.00 

답변

1

인명 구조 마법.

data have; 
infile datalines truncover; 
input @1 string $30.; 
datalines; 
Reject 2.00 Accept 4.00 
Reject 3.00 Accept 9.00 
Reject -4.00 Accept -6.00 
;;;; 
run; 

filename a temp; 
data _null_; 
file a; 
put "1"; 
run; 

data want; 
set have; 
infile a truncover; 
input @1 @@; 
_infile_=string; 
input 
@"Reject" reject BEST5. 
@"Accept" accept BEST5. 
@@ 
; 
datalines; 
run; 

기본적으로 더미 파일을 만듭니다. 그러면 입력 @ "문자열"의 힘을 사용하여 데이터를 검색합니다.

SUBSTR 및/또는 SCAN을 사용하여이를 수행 할 수도 있습니다. IE :

data want; 
set have; 
reject = input(scan(string,2,' '),best.); 
accept = input(scan(String,4,' '),best.); 
run; 

그러나 @ "string"인 infile magic은 위치가 고정되어 있지 않으면 더 유연합니다.

+0

감사합니다. Joe는 훌륭한 답변을드립니다. – LonelySoul

+0

와우 - 네가 할 수 있다는 것을 몰랐다. 최고 ... –

관련 문제