안녕하세요. 통계 분석을 위해 많은 분들이 R Project 를 사용하고 있습니다.

하지만 윈도우 버전에서 사용하기에는 아직 제한사항이 많이 있어 보입니다.

기본적인 통계는 어느정도 개발이 가능하겠지만 복잡한 통계분석을 직접 개발하려면 엄청난 노력 및 시간이 필요합니다.

만약 C#에 익숙하고 윈도우 기반의 통계 프로그램을 생각하고 있다면 Accord.net Framework 을 사용해 보세요.

http://accord-framework.net/

다양한 통계 분석 및 시각화 도구를 제공하며 오디오, 비디오 등의 미디어 관련된 개발도 가능합니다.

다양한 언어를 제공하지만 가장 많은 기능을 제공되는 언어는 C#입니다.

https://www.openhub.net/p/Accord-NET/analyses/latest/languages_summary

VIsual Studio 에서 Visual C# 기반으로 개발하는 것이 

이 모든 내용이 무료이고 오픈소스기 때문에 광벙위한 개발이 가능합니다.

이 프레임웍의 라이선스는 GNU Lesser Public License v2.1 입니다. 상업적으로 사용도 가능합니다.
다만 라이선스에 대한 정보는 아래 링크를 클릭해서 확인해 보세요.

http://accord-framework.net/license.html

저는 R 로 분석은 책 보고 어느정도 가능하지만 C# 개발을 위해서는 Accord.net Framework 을 사용해 볼 계획입니다.

통계 관련 공부를 하게 되면 이해하기 쉽게 프로그래밍 해서 찾아뵙도록 하겠습니다.

감사합니다.

1. R Project

R Project 는 무료로 광범위한 통계분석을 할 수 있는 프로그램입니다.
https://www.r-project.org/

스트립트를 하나하나 작성하면서 분석해야 하기 때문에 상용 소프트웨어에 비하여 불편한 점이 많습니다.

2. R Studio

이를 좀 더 쉽게 해 줄수 있는 프로그램이 R Studio 입니다.
https://www.rstudio.com/
R Studio 를 사용하면 명령어 자동완성, 데이터 테이블 형식으로 보기 기능 등을 제공하여 쉽게 R Project를 사용할 수 있습니다.
R Studio 는 R Project가 설치되어 있어야 실행 가능합니다.

3. Shiny from R Studio

Shiny from R Studio 를 활용하면 R Project 의 내용을 웹 버전으로 개발할 수 있습니다.
http://shiny.rstudio.com/
사실은 이 방법이 모든 단말기에서 R 프로젝트를 수행할 수 있는 최적의 도구인거 같습니다.
추후에 사용해 보고 별도의 글을 남기겠습니다.

4. Visual Studio용 R 도구

Visual Studio 에서도 2015년 버전 부터 R 도구를 설치해서 사용할 수 있습니다.
https://docs.microsoft.com/ko-kr/visualstudio/rtvs/installing-r-tools-for-visual-studio

Visual Studio와 R을 사용해 본 사람은 다른 언어 프로그래밍과 동일하게 디버깅을 할 수 있습니다.
Visual Studio용 R 도구는 R Project가 없어도 실행 가능합니다.

제가 파악한 Visual Studio용 R 도구는 R 언어를 Visual Studio 에서 실행하는 것이 전부인거 같습니다.
(컨트롤과 연동하는 방법이 있다면 댓글 남겨주세요.)

5. R.Net

윈도우 프로그램 개발에서 R 언어를 사용하기 위해서는 R.Net을 설치해서 사용할 수 있습니다.
http://jmp75.github.io/rdotnet/getting_started/
Visual Studio 2017 기준으로 상단 메뉴의 [도구(T) → Nuget 패키지 관리자(N) → 솔루션용 Nuget 패키지 관리...]을 실행한 다음 R.Net을 검색해서 가장 상단에 있는
R.Net 과 R.Net Community를 설치합니다.

여기서 중요한 점. 개발중인 .net framework 버전이 4.0 이면 R.Net 최신버전(1.7.0) 설치가 불가능합니다.
저는 4.0 버전을 사용중이어서 R.Net 1.5.5 버전을 설치하였습니다.
(.net framework 버전이 4.5 이상이면 R.Net 최신버전(1.7.0)을 설치해 주세요)

R.Net Community 도 개발중인 프레임워크 버전에 따라 설치해 주세요.
개발중인 .net framework 버전이 4.0 이면 R.Net Community 최신버전(1.7.0) 설치가 불가능합니다.
저는 4.0 버전을 사용중이어서 R.Net Community 1.6.5 버전을 설치하였습니다.
(.net framework 버전이 4.5 이상이면 R.Net Community 최신버전(1.7.0)을 설치해 주세요)

R.Net을 사용하려면 컴퓨터에 R Project가 설치되어 있어야 합니다.

그런데 최신 버전(3.5.0)을 설치하면 안되고 이전 버전(3.4.4)을 설치해야 R.Net을 사용할 수 있습니다.
(해당 오류는 나중에 해결될 수 있습니다. 해결되었다면 댓글 남겨주세요.)

이제 아래 문서에서 제공하는 2개의 예제를 실행해 보겠습니다.
http://jmp75.github.io/rdotnet/tut_basic_types/

예제1. HelloWorld

콘솔 프로젝트메인 코드에 아래 내용을 입력합니다.

static void Main(string[] args)
{
    REngine.SetEnvironmentVariables(); // <-- May be omitted; the next line would call it.
    REngine engine = REngine.GetInstance();
    // A somewhat contrived but customary Hello World:
    CharacterVector charVec = engine.CreateCharacterVector(new[] { "Hello, R world!, .NET speaking" });
    engine.SetSymbol("greetings", charVec);
    engine.Evaluate("str(greetings)"); // print out in the console
    string[] a = engine.Evaluate("'Hi there .NET, from the R engine'").AsCharacter().ToArray();
    Console.WriteLine("R answered: '{0}'", a[0]);
    Console.WriteLine("Press any key to exit the program");
    Console.ReadKey();
    engine.Dispose();
}

실행하면 다음과 같은 결과가 콘솔 창에 실행됩니다.

예제2. BasicNumericExample

콘솔 프로젝트메인 코드에 아래 내용을 입력합니다.

static void Main(string[] args)
{
     REngine.SetEnvironmentVariables();
     REngine engine = REngine.GetInstance();
     // REngine requires explicit initialization.
     // You can set some parameters.
     engine.Initialize();

     // .NET Framework array to R vector.
     NumericVector group1 = engine.CreateNumericVector(new double[] { 30.02, 29.99, 30.11, 29.97, 30.01, 29.99 });
     engine.SetSymbol("group1", group1);
     // Direct parsing from R script.
     NumericVector group2 = engine.Evaluate("group2 <- c(29.89, 29.93, 29.72, 29.98, 30.02, 29.98)").AsNumeric();

     // Test difference of mean and get the P-value.
     GenericVector testResult = engine.Evaluate("t.test(group1, group2)").AsList();
     double p = testResult["p.value"].AsNumeric().First();

     Console.WriteLine("Group1: [{0}]", string.Join(", ", group1));
     Console.WriteLine("Group2: [{0}]", string.Join(", ", group2));
     Console.WriteLine("P-value = {0:0.000}", p);

     // you should always dispose of the REngine properly.
     // After disposing of the engine, you cannot reinitialize nor reuse it
     engine.Dispose();
}

실행하면 다음과 같은 결과가 콘솔 창에 실행됩니다.

이제 R Project(3.4.4 버전 이하)가 설치된 컴퓨터에서 윈도우용 프로그래밍을 활용하여 통계 분석을 할 수 있습니다.

Visual Studio용 R 도구와 연결하면 R Project 설치 없이도 윈도우 프로그래밍이 가능해 보이는데 아직 방법을 찾지 못하였습니다.
아시는 분 있으면 댓글 남겨주세요.

감사합니다.

'통계 > R Project' 카테고리의 다른 글

R Project 에서 CSV 파일 불러오기  (0) 2018.06.04

엑셀 자료를 R Project 로 불러오는 방법에 대해 알아보겠습니다.

엑셀 파일을 바로 가져올 수도 있지만 불러오기 실패, 한글 깨짐 등 문제가 발생할 수 있습니다.
그래서 불러오기 쉽게 excel 파일을 csv 파일로 저장한 다음에 불어보겠습니다.

1. 예제파일을 준비합니다.

    - 파일명 : data1.csv
    - 폴더 : C:\Program Files\R\R-3.2.3\data(csv)
    (※ 예제 파일은 아래 링크를 클릭해서 다운받을 수 있다)
   

data1.csv

2. R 프로그램을 실행후 아래 명령어를 입력합니다.

    - data <- read.csv("C:/Program Files/R/R-3.2.3/data(csv)/data1.csv", 1)
    (※ 파일경로의 폴더 구분은 \ 에서 /로 변경해야 한다.)

3. 자료가 잘 불러졌는지 확인합니다.

감사합니다.

+ Recent posts