[R] 작업 디렉토리 (Working Directory) 지정 - getwd(), setwd()
R에는 작업 디렉토리 (Working directory)라는 개념이 있다. SPSS에는 없는 개념이고, SAS의 라이브러리와는 약간 다른 개념인데, R의 작업 디렉토리는 일의 편리함을 극대화해주는 도구다.
방법
거두절미하고 작업 디렉토리를 지정하는 코드는 다음과 같다.
setwd("C:/Users/user/Documents/Tistory_blog")
원하는 폴더의 위치를 setwd("")안에 넣어주기만 하면 된다.
- 이때 탐색기와 같은 프로그램에서 위치를 복사에 R 혹은 R studio에 붙여 넣으면 /이 아니라 \로 입력되는데, 이는 일일이 "/"로 바꿔주어야 한다. 혹은 R studio내에서 Ctrl + F로 한 번에 바꿔주거나, 메모장의 Ctrl + H기능으로 한 번에 바꿔주면 된다.
- Mac OS이용자는 바꿔줄 필요 없이 바로 붙여 넣으면 된다.
작업 디렉토리가 잘 지정되었는지 확인할 수도 있는데 코드는 다음과 같다.
getwd()
getwd()를 실행하면 다음과 같이 반환되는 것을 볼 수 있다.
[1] "C:/Users/user/Documents/Tistory_blog"
이점
워킹 디렉토리의 이점은 효율성이다. 예를 들어 "C:\Users\user\Documents\Tistory_blog"안에 있는 "Data_220804.xlsx"를 지정하기 위해서는 일반적으로 다음과 같이 지정해야 한다.
그런데 파일 위치에 찾아가도 보통 파일이 보이지 않는다. 왜냐하면 SAS는 엑셀 확장자 중 "xls 파일"을 기본값으로 설정하고 있는데, 요새 엑셀은 웬만하면 "xlsx 파일"을 사용하기 때문이다. 따라서 파일 형식 드롭박스를 눌러 "xlsx 파일"을 선택하면 파일이 보인다.
파일 선택 후 "열기 (O)"버튼을 누른다.
"OK"버튼을 누른다.
4) 시트 (Sheet) 선택하기
해당 엑셀 파일에 여러 개의 sheet가 있는 경우 원하는 sheet를 고른다.
"Options.."버튼은 평소에 거의 쓸 일이 없다. "Options.."버튼을 누르면 다음과 같은 창이 뜨는데
파일의 첫 행이 데이터명 (Age, ALT 등...)인 경우 첫 번째 체크박스는 반드시 선택되어 있어야 한다. 데이터명이 없는 데이터 파일인 경우 체크박스를 해제한다. 나머지는 변수의 포맷에 관한 것인데, 포맷 변경은 일일이 하는 것이 훨씬 편하므로 이 옵션 창에서는 아무것도 건들지 않는다.
"OK"버튼을 누르고 "Next>"버튼을 누른다.
4) 라이브러리 및 데이터명을 지정한다.
SAS에는 라이브러리라는 개념이 있다. 이에 관한 설명은 아래 링크에서 확인할 수 있다.
-라이브러리를 지정하지 않을 경우 기본값인 "WORK"에서 바꾸지 않으면 되고, 원하는 라이브러리에 데이터를 위치시키고 싶을 경우 원하는 라이브러리를 선택한다.
라이브러리에 데이터 파일을 불러오면 다음부터는 PROC IMPORT를 통해 엑셀 파일을 다시 불러올 필요가 없다. 라이브러리 지정만 해주면 "hong.df"라는 데이터 파일은 언제든지 쓸 수 있다. 평소에는 큰 이득이 되는지 모르겠지만, 데이터 파일이 너무 크거나, 데이터 변환을 하는 경우에는 큰 이득이 된다.
라이브러리를 지정한 문서 내 "Tistory_blog"폴더에 가면 "df.sas7bdat"라는 파일이 생긴 것을 확인할 수 있다.
혹은 SAS 내 탐색기에서 "라이브러리 - Hong"으로 들어가면 Df파일이 존재함을 확인할 수도 있다.
SHEET="Sheet1$":엑셀 파일에 여러 개의 시트가 있을 경우 "Sheet1"을 불러오도록 지정한다.
- CSV 파일은 SHEET구분이 없으므로 지정할 필요가 없다.
RANGE="Sheet1$A1:B10":시트 중 불러올 영역을 "Sheet1의 A1 - B10"으로 지정한다. 만약 SHEET구문과 상충되면 (예, SHEET="Sheet2";RANGE="Sheet1A1:B10") SHEET구문은 무시되고 RANGE에 따라 데이터를 불러온다. GETNAMES=YES: 첫 번째 행을 변수명으로 불러오라는 옵션이다.
처음엔 코드란 것이 많이 어색하고 불편하겠지만, 익숙해지면 불러오기 마법사 (Import wizard)는 사용하지 않게 될 것이다.
저장하기 (내보내기)
이번엔 데이터를 내보내는 방법을 알아보도록 하겠다.
1. '내보내기 마법사 (Export Wizard)'를 이용하는 방법
앞서 불러오기 마법사를 이용해 임시 라이브러리 (WORK)에 저장해놓은 "PATIENT"라는 데이터 파일을 내보내기로 한다.
1) 파일 > 데이터 내보내기 (R) 클릭하기
2) 라이브러리와 내보낼 데이터 파일 선택하기
라이브러리는 WORK, 데이터 파일 (Member)은 PATIENT를 선택하고 "Next >" 버튼을 누른다.
3) 저장될 파일의 포맷 선택하기
엑셀 파일, CSV파일, SPSS파일 등 여러 포맷으로 반출이 가능하다. 이번에는 엑셀 파일로 내보내기를 한다. "Next >" 버튼을 누른다.
4) 저장될 위치와 파일의 이름 지정하기
"Browse..." 버튼을 누른다.
저장하고자 하는 곳의 위치를 찾아 들어가고, 파일 이름일 작성하고, 원하는 파일 형식을 작성한다. 호환성을 위해 ".xlsx" 형식을 추천한다.
"OK"버튼을 누른다.
5) 완료
여기에서 바로 "Finish"버튼을 누르면 내보내기 과정은 끝이 난다.
하지만, 내보내진 엑셀 파일의 시트 이름을 지정하고 싶을 때가 있는데, 이때는 다음 그림과 같이
시트 이름을 지정하고 "Next >"버튼을 누르면 된다.
불러오기 마법사에서 처럼 지금까지의 과정을 PROC EXPORT로 저장하는 것인데, 앞으로 쓰지 않을 방법이므로 무시한다.
SAS를 접하자마자 마주치는 단어가 '라이브러리 (Library)'인데 생소하고 어색한 개념이라 쉽게 이해하기 어려울 것이 사실이다. 필자도 이를 받아들이기까지 짧지 않은 시간이 걸렸으니 말이다.
SAS 라이브러리 개념을 설명하고자 한다. 이해보다 코드가 필요한 독자들은 아래 코드 박스로 이동하면 된다.
-----------------------------SAS 라이브러리 개념 설명-----------------------------
SAS에서 사용되는 파일은 라이브러리에 저장되는데, SAS 라이브러리는 두 가지로 나뉜다.
1) WORK 라이브러리
- 기본 라이브러리
- 임시 폴더
2) 개인이 지정한 라이브러리
- 개별화된 라이브러리
- 영구 폴더
라이브러리라는 개념은 다음 비유를 통하면 쉽게 이해할 수 있을 거라 생각한다.
이 페이지에 들어온 독자들의 기기는 사진을 다운받아 여러분에게 보여준다. 하지만 이내 필요한 파일이 아니므로 곧 삭제한다. 이때 파일이 저장되어있는 곳이 "WORK 라이브러리"다. 파일이 곧 사라지듯, SAS를 종료하면 "WORK 라이브러리"에 저장되어 있는 SAS 파일은 사라진다.
여러분의 기기에 사진을 영구적으로 저장하고자 한다면 특정 폴더에 저장을 해야 한다. 그 특정 폴더가 "개인이 지정한 라이브러리"이며 이곳에 저장된 파일은 영구적으로 저장되어 있다.