Category: R

  • Shiny

    한 번도 사용해 본 적이 없는 상태에서 시도하는 것이라서 헷갈렸는데 대충 방법을 알 것 같다.

    library(shiny)
    
     ui <- fluidPage(
       sliderInput("tmpa", "# of Arrow", min = 50, max = 500000, value = 50)
       , plotOutput("myPlot")
     ) 
     
    server <- function(input, output, session) { 
       output$myPlot = renderPlot({
         tmpa = input$tmpa
         x = runif(tmpa)
         y = runif(tmpa)
         ok = x^2 + y^2 <= 1
         plot(x, y, pch=".", col=ifelse(ok, "red", "blue"), main=paste(4*sum(ok)/tmpa), asp=1, xlim=c(0, 1), ylim=c(0, 1))
       })
     } 
    
     shinyApp(ui, server) 
  • Microsoft R Application Network

    속칭 MRAN.

    일반 사용자 입장에서는 multithread 지원 정도가 장점인 것 같다. 그런데 그게 항상 더 빠른 분석 속도를 보여준다는 의미는 아닌 것 같다.

  • grep(, ignore.case = T)

    당연히 있을 것이라고 생각했지만, 실제로 필요하지 않아서 그럴려니 하면서 사용했던 grep() 명령어였다. 대소문자 구별을 하지 않고 검색을 하기 위해서는 ignore.case = TRUE를 하면 된다.

  • plot.ly

    R패키지 이름은 plotly이다. 3차원 산점도를 그리는 방법을 알아보다가 찾은 패키지이다. 사용법이 ggplot과 유사한 것 같다. 하나씩 줄을 추가하는 방법으로 그리고자 하는 결과물을 다듬는 것 같다. 3차원 산점도를 그리는데 기본적인 방향을 설정하는 것을 한참을 찾다가 발견했다.

    요령은 간단한데, 좌표에 적절한 + 값과 -값을 넣어서 확인하면 된다. -를 넣어도 되는 것을 뒤늦게 찾아냈다.

    plot_ly(B, x = ~alignment.length, y = ~percent.identity, z = ~bit.score, mode= "markers") %>% 
       add_markers(size = ~bit.score, color = ~bit.score) %>%
       layout(scene = list(camera = list(eye = list(x=-2 ,y=-2, z=1))))