Category: R

  • 날짜, 시간 출력

    > format(Sys.time(), "%Y%m%d-%H%M%S")
    [1] "20141004-165820"

    파일로 결과물을 저장할 때에 있어서, 중복된 것인지 아닌지 혹은 언제 만들었는지 표현해야할 경우가 있다. 특히 짧은 시간에 여러개의 파일을 만들 경우에 중복되지 않은 이름을 생성하는 방법이 필요하다. 문자를 포함하는 난수를 이용해서 시도하는 방법도 있겠지만, 그것보다는 시각정보를 사용하는게 편하다. 0.001초 단위를 사용하지 않아도 충분히 다른 문자를 생성할 수가 있다.

    Sys.time() 으로 현재 날짜와 시간을 불러온 다음 format 명령어를 이용해서 원하는 형식으로 출력해서 사용하면 된다. 파일명에 띄어쓰기나 특수기호가 있으면 좀 곤란할 때가 있으므로, 위와 같은 식으로 하면 될 것 같다.

    > format(Sys.time(), "%S %OS6")
    [1] "21 21.499652"

    추가적으로 초를 표현할 때에 보통은 %S로 하겠지만, R에서는 %OSn(n; 1~6)를 사용하면 소숫점 단위의 초를 불러올 수 있다.

  • Density

    Density

    Kernel Density Estimation 은 이해할 수 없는 어려운 내용이지만, 히스토그램을 대체해서 부드럽게 보여주는 매우 편한 방법으로 간주하면 될 것 같다. 옵션은 여러가지가 있는 듯 하지만, 히스토그램과 비슷한 방법으로 봐야할 자료가 있다면 히스토그램의 매우 좋은 대안이 된다. R에서 사용하기도 매우 쉽다.

    추가적으로 확인해보니 저 곡선을 이루는 x, y 좌표를 추출할 수 있다. 따라서, 최고점도 확인할 수 있음.

    plot(density(B.matrix[,2]))

  • Log scale

    Log scale

    R에서 log-scale 을 그릴 때에 왠만하면 log=”y” 라고 하면 대부분 통한다.

    이 때 주의해야할 것은 0은 log 값이 없으므로, 0이 포함되면 infinite 가 있으니 할 수 없다며 에러메세지를 뱉어내기 때문에 미리 값을 변경해두어야 한다.

    위의 그래프에서는 0 이 없음에도 불구하고, 자꾸 infinite 값이 있어서 그릴 수 없다는 오류가 계속 나타나서 한참을 확인해 본 끝에 문제점을 찾았다.

    boxplot(x, ylim=c(10, 300), log=”y”)

    y축의 범위를 지정하는 ylim 에도 0이 포함되면서 오류가 나는 것이었다. 사소한 것도 확인해야 한다는 것을 배웠다.

  • Boxplot 과 Stripchart

    Boxplot 과 Stripchart

    Scatter plot 과 유사한 모습을 가지는 저 그래프의 이름이 Stripchart 인듯함.

    저것을 구사하는 것도 알아두면 좋을 듯.

    그림 figure 는 Gatza, M.L., et al., An integrated genomics approach identifies drivers of proliferation in luminal-subtype human breast cancer. Nat Genet, 2014. advance online publication.