Category: R

  • R에서 PostgreSQL로 INSERT 하기

    사실 이 내용은 별도의 포스트를 개설할 필요는 없을 것 같기도 하지만, 명령어가 직관적이지 않기 때문에 작성하는 것이다. 나중에 깜빡할 수도 있을 것 같다.

    보통 R에서는 DB에 SQL로 질의한 결과를 받아와서 분석을 하는 것이 일반적이다. 그렇기 때문에 이럴 경우에는 dbGetQuery()를 이용한다.

    그렇다면, INSERT 와 같이 DB를 수정하는 쿼리를 실행하여야 하는 경우라면 어떻게 해야할까?

    dbSendQuery() 명령어가 있지 않을까 싶은 생각이 들것이다. 물론 해당 명령어는 있지만, 이건 정말로 Query를 보낸다라는 의미이다. Commit 하기 전과 같은 형태인 것 같다.

    원하는 목적을 위해서는 dbGetQuery() 실행할 때에 INSERT 쿼리를 실행하도록 구문을 작성하면 된다.

    > sql=paste0("INSERT INTO TABLE (columns) VALUES (values)
    > dbGetQuery(con, sql)
  • AUC 구하기

    급하면 코딩이 잘 되는 법이다. AUC를 구해 달라는 연락을 받고 인터넷 서핑을 통하여 해결했다. AUC 구하는 패키지는 많이 있는데, 잘 알려진 pROC 패키지를 이용했다.

    dt %>% roc('group', 'variable')
    plot(roc1, print.auc=T, print.thres=T)

    해석은 variable이 34.654일 때 sensitivity 0.850, specifity 0.897, AUC 0.927이다.

    AUC의 95% 신뢰구간과 p-value는 따로 구한다.

    ci(roc1) #95% CI
    var(ci(roc1)) # p-value
  • relevel

    로지스틱 분석을 하게 되면 기준이 필요하게 된다. 보통은 알파벳이나 숫자 순서대로 첫 번째 항목이 참고치로 설정된다. 이를 변경하고자 할 때에 사용하는 명령어이다. factor인 항목을 대상으로 할 수 있기 때문에, 숫자로 지정된 항목의 경우에는 따옴표를 이용해서 지정하도록 한다.

    temp$dm = relevel(temp$dm, ref="1")
  • R Markdown과 TinyTex

    리눅스 환경에서 R Markdown을 이용하여 PDF로 저장을 하기 위해서는 기본적으로 tinytex를 설치하게 된다. install.packages(‘tinytex’)로 설치한 이후에는 install_tinytex()로 한 번 더 실행시켜야 한다.

    > install.packages('tinytex')
    > install_tinytex()