Category: R

  • Odds ratio

     Odds ratio를 R을 사용하여 구하기 위해서 정말 노력해 보았다. 고민하다가 Appleforum 게시판에서 R을 사용한다는 분을 찾아서 문의 메일을 보냈고 그 답장이 왔다. 그대로 해보니 그 동안 구글링한 내가 바보 같이 느껴질 정도로 쉽게 구해졌다.  OTL

      우선 Package 중에서 epitools를 설치한다. 그 후에

    library(epitools)
    oddsratio(htn.rawdata[,9], htn.rawdata[,1], conf.level=0.95) 이렇게 구하면 된다. 하지만.. 일반적으로 책에서는 좌측 상단에 우리의 목표값(??)이 위치하게 되는데 도움말을 참고해보면 우리의 함수님께서는 우측 하단에 목표값(??)이 위치해야 하므로 columns을 바꾸어 주어야 한다.

    > library(epitools)
    > oddsratio(htn.rawdata[,9], htn.rawdata[,1], conf.level=0.95, rev=”columns”)
    $data
             Outcome
    Predictor   2   1 Total
        0     601 819  1420
        1      55 114   169
        Total 656 933  1589


    $measure
             odds ratio with 95% C.I.
    Predictor estimate    lower    upper
            0 1.000000       NA       NA
            1 1.518482 1.087011 2.144556


    $p.value
             two-sided
    Predictor midp.exact fisher.exact chi.square
            0         NA           NA         NA
            1 0.01401735   0.01637873 0.01464472


    $correction
    [1] FALSE


    attr(,”method”)
    [1] “median-unbiased estimate & mid-p exact CI”

  • 평균치 비교

    이번 숙제에 R을 사용해 보기 위해서 계속 공부중이다. Odds ratio 를 구하는 함수는 없는 것 같지만 계속 찾아볼 예정이고 평균치 비교는 비교적 쉽게 찾을 수 있었다. 이건 비통계전공자의 전투족에 해당하는 내용이다. 🙂

    기본적으로 함수는 t.test 이다. 간단하다. 그래서 어렵다. 아파트나 자동차와 마찬가지로 옵션을 넣어주어야 한다.
    사용하는 기본 옵션은 다음과 같다.
    var.equal = T(RUE) or F(ALSE); 두 집단이 등분산이면 TRUE를 아니면 FALSE를 선택한다.

    등분산 여부는 사전에 var.test를 사용해서 확인한다.
    paired = T(RUE) or F(ALSE); 두 집단이 짝을 이루면 TRUE, 아니면 FALSE 이다.
    conf.level = 0.95 ; 입력을 안하면 기본적으로 0.95이다.

    예시)
    t.test(subset(gumjin.raw, sex==”1″)[,3], subset(gumjin.raw, sex==”2″)[,3],
            paired=FALSE, var.equal=TRUE, conf.level=0.95)

    설명)
      기본적으로 사용한 Data는 gumjin.raw 라는 항목으로 저장되어 있다.
      subset(gumjin.raw, sex==”1″)[,3]  : gumjin.raw 항목에서 sex 항목에 “1”이라고 선택되어진 자료들에서 3번째 열에 해당하는 자료를 불러오는 것을 말한다.

    결과)
            Two Sample t-test

    data:  subset(gumjin.raw, sex == “1”)[, 3] and subset(gumjin.raw, sex == “2”)[, 3]
    t = -1.2357, df = 188, p-value = 0.2181
    alternative hypothesis: true difference in means is not equal to 0
    95 percent confidence interval:
     -15.897745   3.651791
    sample estimates:
    mean of x mean of y
     180.5364  186.6593

    이렇게 결과가 나온다. 🙂

  • Excel 불러오기

    http://remantu.com/r/tutorial/load-data

    엑셀 파일인 XLS 파일을 R에서 불러오는 방법을 역시나 인터넷에서 찾았다. CSV 등으로 변환해서 불러와도 되지만 그 방법보다 좋은 점은 특정 Sheet를 지정해수 불러올 수 있다는 점이다.

    library(RODBC)
    xls = odbcConnectExcel(“파일명.xls”)
    Data 명 = sqlFetch(xls, “엑셀 Sheet 명”)

    이게 홈페이지에 있던 방법이고, 이를 응용해서 한 줄을 줄일 수도 있다.

    Data 명 = sqlFetch(odbcConnectExcel(“파일명.xls”), “엑셀 Sheet 명”)

    이 방법의 단점은 Windows 에서 실행한 R에서만 사용할 수 있다는 것이다. Mac 에서 실행한 R에서는 사용할 수가 없다. 기존의 방법대로 CVS 파일 등으로 변환을 해야 한다. ㅡㅡ;;

  • 함수 지정하기..ㅡㅡ

    함수 지정하기..ㅡㅡ

      R 에서 Heatmap을 작성할 때 기본적으로 사용되는 Clustering 방법은 “complete” 인 것 같다. “~인 것 같다”라고 한 이유는 여러개를 해보았을 때 가장 똑같았기 때문이라는 거..ㅡㅡ;; 그렇기 때문에 다른 방식으로 Clustering 을 하기 위해서는 이 부분을 설정값을 변경을 해주어야 한다. 이번에는 기본 도움말 파일에서는 찾지 못하고 삽질한 끝에 인터넷에서 찾을 수가 있었다.

     heatmap 명령어에서 hclust 에 관한 부분을 지정하는 방법은 hclustfun=XXX 이런 식이다. 따라서 새로운 함수를 만들어주면 되는 것 같다. 함수를 만드는 방법도 친절하게 가르쳐 주고 있었다.

    my.hclust <- function(x) {hclust(x, method=”ward”)}


      이런 식으로하면 my.hclust 함수를 ward method를 사용한 hclust 함수로 사용하도록 할 수 있다.


    heatmap(… , hclustfun=my.hclust)


      이제 이런식으로 입력하면 ward method를 사용한 heatmap 을 볼 수 있게 된다.


      다음번으로 시도할 부분은 원본 파일에서 자료를 새로운 Matrix로 복사시켜서 Heatmap 및 Dendrogram 그리는 것이다. 원본 파일에서 필요할 때마다 변경해서 쓰면 번거로울 테니 꼭 알아두어야 할 부분이다.

       딱히 아는 것도 없이 배울려고 하니 힘들다. 🙁