R 프로그래밍

프로그램을 어떻게 작성하는지 배우는 가장 좋은 방법은 의미있는 무언가를 작성해보는 것이다. 그래서 금번 R 소개는 흔한 과학 작업에 맞춰있다: 자료 분석(Data Analysis).

진정한 목적은 R을 가르치는 것이 아니라, 모든 프로그래밍에 기반하는 기본 개념을 전달함에 있다. R을 사용해서 학습을 진행한다. 왜냐하면,

  1. 예제로 어떤 언어든지 사용해야만 된다.
  2. 무료이고, 문서화가 잘 되어 있고, 거의 모든 곳에서 실행된다.
  3. 과학자들 사이에 커다란 (그리고 점증하는) 사용자 기반이 있다.
  4. 다양한 작업을 수행하는데 이용가능한 외부 패키지 라이브러리가 많다.

하지만, 두 가지 가장 중요한 것은 어떤 언어든 상관없이 동료가 사용하는 언어를 사용해서, 작업 결과를 쉽게 공유할 수 있어야 하고, 해당 언어를 사용해야 된다는 점이다.

관절염에 대한 새로운 치료법이 처방된 환자의 염증에 대한 연구를 진행하고 있고, 첫 데이터셋(Data Set) 12개를 분석할 필요가 있다. 데이터셋은 CSV 형식(comma-separated values, 구분자가 콤마 값을 가진 파일 형식)으로 저장되어 있다: 각 행은 환자 한명에 대한 정보로 구성되고, 열은 연속된 날짜 정보를 나타낸다. 첫번째 파일에 대한 처음 행 몇줄 정보는 다음과 같다:

0,0,1,3,1,2,4,7,8,3,3,3,10,5,7,4,7,7,12,18,6,13,11,11,7,7,4,6,8,8,4,4,5,7,3,4,2,3,0,0
0,1,2,1,2,1,3,2,2,6,10,11,5,9,4,4,7,16,8,6,18,4,12,5,12,7,11,5,11,3,3,5,4,4,5,5,1,1,0,1
0,1,1,3,3,2,6,2,5,9,5,7,4,5,4,15,5,11,9,10,19,14,12,17,7,12,11,7,4,2,10,5,4,2,2,3,2,2,1,1
0,0,2,0,4,2,2,1,6,7,10,7,9,13,8,8,15,10,10,7,17,4,4,7,6,15,6,4,9,11,3,5,6,3,3,4,2,3,2,1
0,1,1,3,3,1,3,5,2,4,4,7,6,5,3,10,8,10,6,17,9,14,9,7,13,9,12,6,7,7,9,6,3,2,2,4,2,0,1,1

작업할 사항은 다음과 같다:

상기 작업을 수행하기 위해서, 프로그래밍에 관해 약간 학습할 필요가 있다.

선수과목

학습자는 (작업 디렉토리를 포함) 파일과 디렉토리에 관한 개념을 이해할 필요가 있다. 흔히 RStudio를 사용해서 학습을 진행하지만, 필수로 요구되는 것은 아니다.

Schedule

Setup Download files required for the lesson
00:00 1. Analyzing Patient Data How do I read data into R?
How do I assign variables?
What is a data frame?
How do I access subsets of a data frame?
How do I calculate simple statistics like mean and median?
Where can I get help?
How can I plot my data?
00:45 2. Creating Functions How do I make a function?
How can I test my functions?
How should I document my code?
01:15 3. Analyzing Multiple Data Sets How can I do the same thing to multiple data sets?
How do I write a for loop?
01:45 4. Making Choices How do I make choices using if and else statements?
How do I compare values?
How do I save my plots to a PDF file?
02:15 5. Command-Line Programs How do I write a command-line script?
How do I read in arguments from the command-line?
02:45 6. Best Practices for Writing R Code How can I write R code that other people can understand and use?
02:55 7. Dynamic Reports with knitr How can I put my text, code, and results all in one document?
How do I use knitr?
How do I write in Markdown?
03:15 8. Making Packages in R How do I collect my code together so I can reuse it and share it?
How do I make my own packages?
03:45 9. Introduction to RStudio How do I use the RStudio graphical user interface?
04:00 10. Addressing Data What are the different methods for accessing parts of a data frame?
04:20 11. Reading and Writing CSV Files How do I read data from a CSV file into R?
How do I write data to a CSV file?
04:50 12. Understanding Factors How is categorical data represented in R?
How do I work with factors?
05:10 13. Data Types and Structures What are the different data types in R?
What are the different data structures in R?
How do I access data within the various data structures?
05:55 14. The Call Stack What is the call stack, and how does R know what order to do things in?
How does scope work in R?
06:10 15. Loops in R How can I do the same thing multiple times more efficiently in R?
What is vectorization?
Should I use a loop or an apply statement?
06:40 Finish

The actual schedule may vary slightly depending on the topics and exercises chosen by the instructor.