BookmarkSubscribeRSS Feed
mj23
Calcite | Level 5
  1. orion.staff는 직원들의 근무 정보를 담고 있다.

emp_hire_date는 입사일, emp_term_date 퇴사일을 나타낸다.

이 정보를 가지고 직원들의 총 근무 기간을계산한다.

이때 직군이 Sales인 직원만 (job_title이 Sales를 포함하는) 대상으로 근무 기간을 계산하여 1년 미만을 근무한 직원 (근무일수 365일 미만),

1년 이상 10년이하로 근무한 직원(근무일수 3650일 이하),

10년 이상 근무한 직원(근무일수 3650일 초과)의 수를 계산하여라. (10점)

* Hint: data step과 proc freq를 이용한다.

 

  1. orion.staff 데이터셋과 orion.sales 데이터셋을 가지고 다음 조건에 맞는 새로운데이터셋을 생성한다. (10점)
  2. a) 두 데이터셋에 모두 있는 관찰치만 저장하여 with_sale 데이터셋을 생성하고 staff데이터셋에만 있는 관찰치를 저장하여 nosale 데이터셋을 생성한다.
  3. b) 생성되는 두 데이터셋은 end_date가 2011년인 관찰치만 저장한다.
  4. c) with_sale은 변수 employee_id, end_date, country만 저장하고, nosale은employee_id, end_date, country, gender 변수만 저장한다.

* 하나의 스텝으로 프로그램을 작성하면 10점, 두 개 이상의 스텝으로 프로그램을 작성하면 7점

 

  1. orion.order_fact 데이터셋에는 주문정보를 가지고 있다.

이 자료를 가지고 2011년에 가장 많은 금액을 주문한 고객 5명에게 회사에서는 사은품을 집으로 보내고자 한다. 고객의 주소정보는 orion.customer에 저장되어 있다.

이를 위한 SAS 프로그램을 다음의 순서에 따라 작성한다.

  • 정상적인 방법
  1. a) orion.order_fact 데이터셋을 customer_id로 정렬한다.
  2. b) retain 명령문이나 sum statement를 사용하여 고객별 total_retail_price의 합계금액을 계산한다.
  3. c) b단계에서 생성된 데이터셋과 orion.customer 데이터셋을 customer_id 변수를키로 하여 가로결합한다. 이때 customer별 합계 금액, customer_name,customer_address, street_id, street_number를 저장한다.
  4. d) c)에서 생성된 데이터를 출력한다. 이때 합계금액이 가장 큰 고객 5명만 출력한다.
  • 쉬운 방법
  1. a) proc means 프로시져를 수행하여 customer_id별 total_retail_price의 합계 금액을 출력한다. 출력된 합계금액에서 가장 금액이 큰 5명의 고객을 찾아customer_id를 기억한다.
  2. b) orion.customer 데이터셋을 열어 a)에서 찾은 customer_id를 찾아 해당 고객의customer_name, customer_address, street_id, street_number를 기록한다.

* 정상적인 방법으로 풀면 15점. 쉬운 방법으로 풀면 5점

 

  1. A 회사는 올해 연 수입이 $600,000이고 지출은 $1,000,000이다. 매년 수입은 5%씩 증가하고 지출은 3%씩 증가한다고 할 때, 수입이 지출보다 많아지기까지 걸리는 년수를 계산한다. 단 25년이 넘지 않도록 한다. (10점)

 

 

  1. orion.us_newhire를 이용하여 다음 조건에 따라 새로운 데이터셋을 생성하여라. (10점)
  2. a) ID 변수에 포함되어 있는 “-”를 모두 제거하고 ID 변수는 숫자형 변수로 변환한다.
  3. b) Telephone 변수는 앞 세자리와 뒤 네자리 사이에 “-”를 추가한 후 문자형 변수로변환한다. c) Birthday 변수는 날짜변수로 변환하고 적절한 날짜 포맷을 할당한다.

 

  1. orion.travel_expense는 각 직원의 출장 정보를 가지고 있다. exp1 ~ exp5는 각각Taxi, Bus, Train, Airplane, Car를 사용한 비용을 나타낸다.
  2. a) orion.travel_expense 데이터셋을 읽어 exp1 ~ exp5가 결측인 데이터를 제외하고데이터를 전치시켜 narrow data set으로 변경한다. exp1 ~ exp5의 값은 amount변수에 저장한다. category 변수를 생성하여 Taxi, Bus, Train, Airplane, Car 중에하나를 저장한다. (7점)

* Hint. category 변수는 1~5를 저장한 후 user-defined format을 생성하여 1~5의값으로 각각 Taxi, Bus, Train, Airplane, Car 중에 하나를 저장한다. b) proc transpose를 수행하여 a)와 유사한 결과를 생성한다. (3점)

 

sas-innovate-white.png

🚨 Early Bird Rate Extended!

Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9.

 

Lock in the best rate now before the price increases on April 1.

Register now!

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 0 replies
  • 301 views
  • 0 likes
  • 1 in conversation