#acl +All:read #format wiki #language ko #pragma description 서울대학교 계산신경과학 연구실; 정지훈 교수; 기초의학통계 = R Introduction = == 특징 == === 역사 === * 1990년대 초반 [[WikiPedia:University of Auckland]](New Zealand)의 [[WikiPedia:Ross Ihaka]]와 [[WikiPedia:Robert Gentleman (statistician)|Robert Gentleman]]에 의해 개발됨 * [[WikiPedia:S (programming_language)|S language]] (1976년 [[WikiPedia:Bell Labs]]의 [[WikiPedia:John Chambers (statistician)|John Chambers]]가 개발한 statistical programming language)의 후속작 * 이름의 의미: S language보다 앞선다는 말장난 + 두 저자의 first name * 1995년 첫 버전이 공개된 후 R Development Core Team에 의해 꾸준히 버전업 됨 * [[https://www.r-project.org/foundation/board.html|R Development Core Team]]에 [[WikiPedia:John Chambers (statistician)|John Chambers]]가 속해 있음. * 2020/06/22 R 4.0.2 (Taking Off Again)가 가장 최신 === Open Source === [[https://www.fsf.org/|Free Software Foundation]]의 [[https://www.gnu.org/|GNU]] Project의 일부로 개발되고, [[https://www.gnu.org/licenses/gpl.html|GNU License]]를 적용받음 (무료) * 비교: [[WikiPedia:S (programming_language)|S language]]는 [[WikiPedia:Bell Labs]]에서 개발 * 비교: [[WikiPedia:SPSS]]는 [[WikiPedia:SPSS Inc.]]에 의해 개발되었고, [[WikiPedia:IBM]]에 귀속됨 (유료) * 비교: [[WikiPedia:MATLAB]]은 [[https://www.mathworks.com/|MathWorks]]에 의해 개발됨 (유료) * 비교: [[https://www.python.org/|Python]]은 [[https://www.python.org/psf/|Python Software Foundation]]에 의해 개발되고 [[https://www.gnu.org/licenses/gpl.html|GNU License]]와 비슷한 [[WikiPedia:Python Software Foundation License]]를 적용받음 (무료) R의 core는 [[https://www.r-project.org/foundation/|R Development Core Team]]에 의해 개발되지만, 대부분의 기능은 open source community 에 의해 추가됨 * 통계에서 쓰이는 거의 모든 기능은 누군가에 의해 개발되어 package라는 이름으로 공유됨. * 필요한 기능(function)이 있으면 일단 검색부터 하자: https://cran.r-project.org/web/packages/ (공식) * [[https://www.datacamp.com/|DataCamp]]에서 만든 [[https://www.rdocumentation.org/]]가 좀 더 보기 편함 * [[https://www.google.com|Google]]에서 cran과 필요한 기능 키워드를 같이 검색하면 대부분 찾아짐 * 필요한 기능을 못 찾으면 직접 구현하여 community에 기여할 수도 있고, 혼자만의 노하우로 간직할 수도 있지만, 유료 판매는 안 됨 ([[https://www.gnu.org/licenses/gpl.html|GNU License]]에서 금지함) === Interpreter 방식 === Script가 한줄 한줄 실행되는 방식: 직관적이고 빠른 코드 수정이 가능. * 비교: compiler 방식은 코드 수정 후 매번 기계어로 바꾸는 과정이 추가되어야 함 (예: C language, Java) * 빠른 실행이 요구되는 상업적 프로그램 개발에는 compiler 방식이 우세하나, 실행시 속도보다 코드 수정이 빠를 때 생산성이 높아지는 scientific computing에는 interpreter 방식이 적합 * 다른 과학계산용 interpreter language: python, !MatLab, Igor 등 === 단점 === * Memory management: 모든 data를 컴퓨터 메모리에 올려놓고 계산하는 방식. * 컴퓨터의 물리적 메모리 크기보다 큰 크기의 데이타는 실행이 어려움 * 개인용 PC에도 수십GB 의 메모리가 장착되는 요즘은 큰 문제는 아님 * 진정 큰 data의 경우 샘플 data로 로직만 개발해 놓고, 실제로는 cloud computing으로 옮겨서 계산하면 해결가능 == 설치 == * [[../InstallR|R 설치하기]] * [[../InstallRStudio|RStudio 설치하기]] * [[../RCloud|설치 안 하고 Cloud에서 R 사용하기]] ----- <>