최상의 답변
나는 stata에서 R로 전환했습니다. 다음은 내 관찰입니다.
장점 :
- R 오픈 소스이므로 사람들이 틈새 문제를 해결하기 위해 작성한 정말 멋진 최첨단 알고리즘이나 소프트웨어에 액세스 할 수 있습니다.
- R은 더 나은 시각화를 제공합니다. ggplot2를 잘 다루면 할 수 있습니다. 거의 모든 유형의 데이터로 매우 놀라운 일입니다.
- 사용자 정의 패키지 및 함수를 작성하는 데 R이 더 쉽다는 것을 알았습니다.
- R은 통계 / 기계 학습 커뮤니티에 더 가깝기 때문에 stata보다 더 많은 지원 / 패키지를 찾을 수 있습니다.
- 특히 서버에서 작업 할 때 RStudio Gui를 좋아합니다.
- R은 더 나은 Latex 지원을 제공합니다.
- R에는 매우 활동적인 커뮤니티와 도움말 목록이 있습니다. 그들은 모든 질문에 대해 놀랍도록 빠르게 지원해 왔습니다.
- R은 빅 데이터와 함께 작동합니다! RHadoop 패키지를 사용하면 R 함수를 사용하여 사용자 정의 MapReduce 스크립트를 작성할 수 있습니다. 빅 데이터를 처리해야하고 Stata 만 사용할 수 있다면 망할 수 있습니다.
- 많은 “핵”이있는 경향이 있습니다. R에서 네트워크 분석, 사용자 정의 부트 스트랩 등과 같은 복잡한 문제를 해결합니다. 바닐라 구현에서 벗어나 자마자 저는 R의 프로 시저에서 바로 가기 함수를 발견 한 반면 Stata에서는 종종 코드를 작성해야합니다.
단점 :
- R은 오픈 소스이므로 활성 개발이없는 경우 새 알고리즘에 액세스하려면 잠시 기다려야 할 수 있습니다.
- Stata는 계량 경제학 커뮤니티에 훨씬 더 가깝고 R보다 더 많은 알고리즘, 패키지 및 구현을 가지고 있습니다. 경제학자라면 계량 경제학 패키지의 포괄 성이 부족하여 실망하실 것입니다.
- Stata에는 실행하려는 절차를 대화식으로 선택하고 대부분의 세부 정보를 입력 할 수있는 훌륭한 GUI가 있습니다. 이것은 이전에 사용한 적이없는 기능을 사용할 때 유용합니다. R에는이 기능이 없습니다. RI를 사용하는 시간이 절반으로 줄어 듭니다.
- Stata가 R [1]보다 빠릅니다.
- stata 모듈을 다운로드하는 것은 훨씬 더 간소화 된 프로세스 CRAN의 R 모듈의 경우 일반적으로 문제가 없지만 (Centos 시스템을 사용할 때 문제가 발생했지만) CRAN에없는 몇 가지 필수 패키지가 있습니다.
- Stata의 표준 시각화 및 플로팅은 R보다 훨씬 낫습니다.
- Stata는 더 나은 표준 도움말을 제공합니다. 모든 기능에 대한 도움말을 읽고 내가 무엇을 정확히 파악할 수있는 것 같습니다. 문서화가 잘 안된 여러 R 패키지에 대해서는 그렇게 생각하지 않습니다.
- R에는 “WTF”구문과 패키지 명명 구조가 있습니다. 대부분의 오픈 소스 프로젝트는 그렇습니다. 나는 stata 기능 (reg, lm 등)의 단순함을 놓친다.
[1] http://ekonometrics.blogspot.com/2011/04/speeding-tickets-for-r-and-stata.html
답변
일반적으로 부사 ” 명백히 “문장에서 나는 그 뒤에 부당한 진술을 발견했습니다. 여기서 나는 R이 “기이 한 구문”을 가지고 있다는 당신의 주장에 동의하지 않습니다. 교육받은 모든 프로그래머는 Haskell 또는 일부 Lisp로 코딩하는 것을 선호하지만 실제로 이러한 언어는 많은 사용자에게 도달하지 않습니다. R은 내부의 Lisp이지만 (예를 들어 실제로 Python이 아닌 R에서 언어로 코딩 할 수 있음) 외부 과학 언어에 충분히 가깝습니다. 사실, 데이터 분석을위한 언어 라는 점에서 알 수 있듯이 R은 실제로 가장 자연스럽고 우아한 언어입니다. 이에 대한 증거를 원한다면 Python 및 Julia를 둘러싼 활동 : 데이터 프레임 구현 (Jlia의 Pandas 및 data.frame), 수식 (patsy), plyr (pandas)를 확인하세요. 그리고 여전히 이러한 모든 기능은 다른 언어에 다소 접목 된 것처럼 보입니다. 사람들이 “이상하다”또는 “놀라운”것으로 인식하는 것은 대화 형 사용 (예 : 차원 감소)에 대한 양보의 결과이거나 언어의 기능적 유산의 결과입니다.
나는 R이 많은 것을 가지고 있다는 데 동의합니다. 개선 할 부분이 있지만 대부분 언어 구문에는 없습니다. 물론 이름 지정 규칙이 일치하지 않습니다. 속도 및 메모리 관리는 알려진 문제입니다. 등등. 왜 그런 겁니까? 몇 가지 이유 :
- R의 프라임 지침 (제작자 John Chambers에 따르면)은 신뢰할 수있는 소프트웨어를 생산하는 것입니다. R은 정확성과 신뢰성에 높은 가치를 둡니다. 핵심 통계 기능은 최고 수준입니다. 히스토그램 비닝 (사소한 문제가 아닙니다!)부터 텍스트 배치에 이르기까지 기본 그래픽 시스템도 신중하게 고려되었습니다. 속도는 큰 관심사가 아니 었습니다. 속도와 메모리 효율성이 문제라면 우리는 모두 쉽고 높은 수준의 FORTRAN으로 코딩 할 것입니다. R base의 소스 코드는 짧습니다 (400K LOC, 비교하자면 Numpy 만 같은 크기 임). , 매우 가독성이 뛰어납니다. 이해하고 신뢰할 수있는 코드입니다.
- Splus와 R은 “빅 데이터”시대와 머신 러닝이 등장하기 훨씬 이전 인 80 년대와 90 년대에 고안되었습니다. 그러나 R은 개선되었습니다 . 메모리 관리는 훨씬 낫고 아마도 MATLAB보다 우월 할 것입니다. 갈 길이 멀지 만 일부는 개선 될 수 있습니다 (예 : 내부 데이터 표현).
- 핵심 개발 팀은 최소한의 이직률을 가지고 있습니다. 15 년 전의 젊은 코더는 이제 50 대입니다. 또한 커뮤니티 참여가 훨씬 적고, 커밋의 70 \% 이상을 담당하는 옥스포드 교수 인 Brian Ripley와 같은 그림 / 신화 적 캐릭터로 구성됩니다. 지구상과 R 메일 링리스트에서 가장 친근한 사람입니다.
- R은 LLVM을 대상으로하는 빠른 JIT 컴파일러를 구걸하지만 이러한 일은 하룻밤 사이에 발생하지 않습니다. 컴파일러 및 인터프리터 디자인 지식, 강력한 작업 윤리 (2 년 내에 제품을 출시하기위한), 자체 허영 프로젝트를 만드는 대신 기존 언어를 다시 구현할 수있는 겸손 함을 갖춘 우수하고 교육받은 코더 팀이 필요합니다. 또한 # 3을 참조하십시오.