BookmarkSubscribeRSS Feed
☑ This topic is solved. Need further help from the community? Please sign in and ask a new question.
lhb00
Calcite | Level 5

해당 input문을 완성하여,

data q2;

/* input문*/

cards;

66.5 kim f

29 Jun 17

67.28 yunm

12-May-2020

;

run;

proc print;

run;

스크린샷 2023-04-12 오후 4.22.21.png

이러한 데이터를 출력해야하는데, 발상이 잘 떠오르질 않네요. input 관련 문제는 경우의 수가 너무 많아서 어렵군요... 감사합니다.

1 ACCEPTED SOLUTION

Accepted Solutions
Chulgyu1
SAS Employee

이런 반정형의 데이터를 자유자재로 읽어 들일 수 있는 기능이 SAS 큰 장점 중 하나인 것 같습니다.

5가지의 조건을 반영한 input 문을 아래 코드와 같이 작성하면 될 것 같네요.

다만 input 문으로 처리가 안 되는 부분은 다른 문장의 기능을 빌려서 구현을 해야 할 듯 합니다.

data q2;
infile datalines truncover;
input age name $3. @10 gen $1. / date0 $11.;
date=input(compress(date0,' -'),date.);
format date date9.;
drop date0;
cards;
66.5 kim f
29 Jun 17
67.28 yunm
12-May-2020
;

proc print;
run;

SAS 9.4 M8 버전에서 테스트 하였습니다.

Chulgyu1_0-1681606627278.png

 

View solution in original post

4 REPLIES 4
Chulgyu1
SAS Employee
input data의 Format을 구체적으로 알려주셔야 input 문장을 만들어 볼 수 있을 듯 하네요.
간단하게 질문드리면,
1. age 변수는 숫자인데, name 변수와는 값이 어떻게 구분되는지?
2. name 변수는 길이가 3byte인지?
3. ge 변수는 1byte 이면서, 각 행에서 position이 동일한지?
4. date 변수는 날짜인데, 입력되는 데이터 형식이 위에 예시 2가지 뿐인지?
5. 데이터의 한개 레코드는 2개 행으로 구성되어 있는지?
위 내용이 잘 파악이 되면 input 문장을 구성해 볼 수 있을 것 같습니다.
lhb00
Calcite | Level 5

질문 답변 드립니다.

1. age 변수와 name 변수 사이에 띄어쓰기가 들어가 있습니다. 이것으로 구분됩니다.

2. 네. name 변수의 길이는 3byte입니다.

3. ge 변수는 1byte가 맞으며, 각 행에서 10열로 위치가 동일합니다.

4. 네. 위의 2가지 형식으로만 날짜가 입력됩니다.

5. 네. 데이터의 각 레코드가 2개의 행으로 구성됩니다.

감사합니다.

Chulgyu1
SAS Employee

이런 반정형의 데이터를 자유자재로 읽어 들일 수 있는 기능이 SAS 큰 장점 중 하나인 것 같습니다.

5가지의 조건을 반영한 input 문을 아래 코드와 같이 작성하면 될 것 같네요.

다만 input 문으로 처리가 안 되는 부분은 다른 문장의 기능을 빌려서 구현을 해야 할 듯 합니다.

data q2;
infile datalines truncover;
input age name $3. @10 gen $1. / date0 $11.;
date=input(compress(date0,' -'),date.);
format date date9.;
drop date0;
cards;
66.5 kim f
29 Jun 17
67.28 yunm
12-May-2020
;

proc print;
run;

SAS 9.4 M8 버전에서 테스트 하였습니다.

Chulgyu1_0-1681606627278.png

 

lhb00
Calcite | Level 5

감사합니다. 많은 도움이 되었습니다.

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

Register Now

Discussion stats
  • 4 replies
  • 2663 views
  • 0 likes
  • 2 in conversation