Data Science/SAS
[SAS BASE] CramBible Q#13 문제풀이 infile | dlm = ',' | input
오기오기
2024. 9. 28. 19:00
728x90
반응형
QUESTION NO: 13
Given the following raw data record:
----I----10---I----20---I----30
son, Travis
The following output is desired:
Obs relation firstname
1 son Travis
Which SAS program correctly reads in the raw data?
A. data family (dIm = ','); infile 'tile specification'; input relation $ firstname $; run;
B. optionsdIm = ','; data family; infile 'file specification'; input relation $ firstname $; run;
C. data family;infile 'file specification' dIm = ','; input relation $ firstname $; run;
D. data family;infile 'file specification'; input relation $ firstname $ / dim = ','; run;
- 변수 relation에는 "son"이, firstname에는 "Travis"가 들어가야 합니다.
- 쉼표를 기준으로 데이터를 나누어야 하는 상황입니다.
SAS에서 쉼표 구분자 사용 방법:
- DLM= 옵션을 사용하여 데이터 구분자를 지정할 수 있습니다. 여기서는 쉼표(,)로 데이터를 나누고 있으므로, dlm=','와 같이 지정해야 합니다.
그렇기에 정답은 C가 됩니다
각 선택지 분석:
선택지 A:
data family (dlm = ',');
infile 'file specification';
input relation $ firstname $;
run;
- data family (dlm = ','): 이 부분에서 dlm=을 사용하고 있지만, data 스텝에서 dlm 옵션은 사용할 수 없습니다. dlm 옵션은 infile 문에서 사용되어야 합니다.
- 따라서, 이 선택지는 오답입니다.
선택지 B:
options dlm = ',';
data family;
infile 'file specification';
input relation $ firstname $;
run;
- options dlm = ',';: options 스텝에서 dlm을 지정하는 것은 올바르지 않습니다. 데이터 구분자를 설정하는 것은 infile 스텝에서 이루어져야 합니다.
- 따라서, 이 선택지도 오답입니다.
선택지 C:
data family;
infile 'file specification' dlm = ',';
input relation $ firstname $;
run;
- infile 'file specification' dlm = ',';: 여기서 infile 스텝에서 dlm=',' 옵션을 사용하여 데이터를 쉼표(,)로 구분하여 읽어들이도록 지정하고 있습니다.
- input relation $ firstname $;: 이 부분은 쉼표로 구분된 두 개의 문자열(relation과 firstname)을 읽어들일 수 있도록 제대로 설정되어 있습니다.
선택지 D:
data family;
infile 'file specification';
input relation $ firstname $ / dlm = ',';
run;
- input relation $ firstname $ / dlm = ',';: 이 구문에서 **/ dlm = ','**는 잘못된 구문입니다. dlm 옵션은 infile 문에서 사용해야 합니다.
- 따라서, 이 선택지도 오답입니다.
infile 문과 dlm 옵션:
- infile 문은 외부 파일에서 데이터를 읽어오는 역할을 합니다.
- dlm= 옵션은 **데이터 구분자(delimiter)**를 지정하는 데 사용됩니다. 예를 들어, 데이터가 쉼표, 탭, 공백 등으로 구분될 경우, dlm 옵션을 통해 구분자를 명시해야 합니다.
- 예: infile 'filename' dlm = ',';는 쉼표로 데이터를 구분하도록 지시합니다.
input 문:
- input 문은 데이터를 읽어와서 SAS 변수에 저장하는 역할을 합니다.
- $ 기호는 해당 변수가 문자형 변수임을 나타냅니다.
- 예: input relation $ firstname $;는 두 개의 문자형 변수를 읽어들입니다.
데이터 구분:
- 고정된 폭의 데이터가 아닌 구분자 기반 데이터를 다룰 때, dlm= 옵션을 사용하여 원하는 구분자로 데이터를 읽어올 수 있습니다.
- 특히 쉼표(,), 탭(\t), 공백 등으로 데이터를 구분할 때 유용합니다.
728x90
반응형