인정합시다. 비트코인으로 전 세계가 미쳐 버렸습니다. Satoshi Nakamoto가 소개 한 최초의 암호화(double-spend 문제를 해결하는 최초의 디지털 화폐) 인 비트코인(BTC)은 잘 설립 된 회사 (심지어 몇몇 국가)보다 커졌습니다. 따라서 많은 비트코인 매니아와 투자자는 시장을 더 잘 읽고 그에 따라 움직일 수 있도록 일일 가격을 추적하려고합니다.

 

이 자습서는 R 사용자가 Coindeskr, Shiny 및 Dygraphs의 세 가지 패키지를 사용하여 자신의 일일 비트코인 가격 추적을 만들도록 돕기위한 것입니다.

CoindeskrCoindesk에서 제공하는 역사적인 비트코인 가격을 포함하여 Bitcoin Price Index를 추출하기 위해 coindesk API에 액세스하는 데 도움이됩니다.

Shiny 구조 및 스크립트 명명

Every Shiny app contains two parts – the UI part and the Server part. This post follows single file layout of designing the Shiny app where the shiny app contains one single file app.R that contains two functions ui and serverin the same code.

Start a new R Script app.R in a new folder (of desired name) and proceed further with the following code.

모든 Shiny 앱은 UI 및 Server 라는 두 부분으로 구성됩니다. 이 게시물은 Shiny 애플리케이션을 설계하는 단일 파일 레이아웃을 다음과 같은 두 가지 기능인 ui와 server가 하나의 파일 app.R에 포함되어 있습니다.

새 R 스크립트 app.R을 새 폴더 (원하는 이름)에 시작하고 다음 코드를 계속 진행하십시오.

패키지 설치 및 불러오기

#install.packages('shiny')
#install.packages('coindeskr')
#install.packages('dygraphs')

library(shiny) #shiny App 패키지
library(coindeskr) #Coindesk API 패키지 
library(dygraphs) #대화식 시계열 그래프 패키지

먼저 위의 코드에서 처럼 Shiny, Coindeskr 및 dygraphs라는 필수 패키지를 불러드립니다. (위의 패키지가 없는 경우 먼저 설치하시기 바랍니다)

지난 31 일간 비트코인 가격 추출

coindeskr의 편리한 함수인 get_last31days_price()를 사용하여 비트코인의 USD 가격을 지난 31 일 동안 추출하고 데이터 프레임 last31에 저장합니다.

last31 <- get_last31days_price() 

앱에 표시 될 UI 요소

A Bitcoin Price Tracker should not only display the graph of the last one month price information but also should give us some highlights or summary, hence let us also display the minimum and maximum price of Bitcoin in the given time period and dates of when it was minimum and maximum.

비트코인 가격 추적기는 최근 1 개월 가격 정보의 그래프를 표시 할뿐만 아니라 우리에게 몇 가지 하이라이트 또는 요약을 제공해야 합니다. 따라서 주어진 기간 및 해당 날짜의 비트코인의 최소.최대 가격을 표시하십시오

UI는 다음을 포함해야합니다.

  • 앱 제목
  • 최소 비트코인 가격 및 이에 상응하는 날짜
  • 최대비트코인 가격 및 이에 상응하는 날짜
  • 지난 31 일 동안 비트코인 가격의 추세를 볼 수있는 대화형 시계열 그래프

첫 번째 세 요소는 기본 Shiny 기능만으로 코딩 할 수 있지만 마지막 대화형 시계열 그래프에서는 dygraphOutput() 함수를 사용하여 배경 객체를 표시 할 수 있습니다.

ui <- shinyUI(
  fluidPage(
  titlePanel('Bitcoin USD Price for Last 31 days'),
  mainPanel(
    h3('Minimum'),
    h3(htmlOutput('minprice')),
    h3('Maximum'),
    h3(htmlOutput('maxprice')),
    dygraphOutput("btcprice")
  )
))

Shiny App의 서버 코드

여기서 우리는 데이터 프레임 last31에서 정보를 추출해야하며 코드의 UI 부분에 정의된 해당 output ID – minprice, maxprice 및 btcprice에 피드를 제공해야합니다. 최소 비트코인 가격과 최대 Bitcoin 가격을 추출하기 위해 min() 및 max() 함수가 각각 사용되며 which.min() 및 which.max()가 사용되며 최소 및 최대 가격 값의 rownames를 반환합니다. 여기서 rownames 동등한 날짜를 포함한다. 앞에서 언급했듯이 dygraphs 패키지는 renderDygraph() 함수를 제공하여 dygraph() 함수를 사용하여 만든 대화 형 (html) 시계열 그래프를 표시합니다.

server <- function(input,output){
  
  output$minprice <- renderText(
    paste('Price : $', min(last31), '<br>Date :', rownames(last31)[which.min(last31$Price)] )
  )
  
  
  output$maxprice <- renderText(
    paste('Price : $', max(last31), '<br>Date :', rownames(last31)[which.max(last31$Price)] )
  )
  output$btcprice <- renderDygraph(
    dygraph(data = last31, main = "Bitcoin USD Price for Last 31 days") %>% 
      dyHighlight(highlightCircleSize = 5, 
                  highlightSeriesBackgroundAlpha = 0.2,
                  hideOnMouseOut = FALSE, highlightSeriesOpts = list(strokeWidth = 3)) %>%
      dyRangeSelector()
  )
}

비트코인 가격 추적 Shiny 앱 :

코드가 준비되면 RStudio의 오른쪽 위에있는 Run App 버튼을 사용하여 Shiny 앱을 (평소와 같이) 실행할 수 있습니다. 코드가 아직 준비되지 않았다면 다음 코드를 사용하여 Github에서 직접 shiny 앱을 실행하십시오. 필요한 모든 패키지 (shiny, coindeskr, dygraphs가 이미 설치되어있어야 합니다).

shiny::runGitHub('amrrs/Bitcoin_price_tracker_Daily')

비트코인 가격 추적 Shiny 앱 스크린 샷 :

이제 비트코인 일일 가격 추적기가 준비되었습니다! 위에서 사용 된 코드는 여기 github에서 사용할 수 있습니다. Shiny에 관심이 있다면 Datacamp에 개설된 Building Web Applications in R with Shiny Course 에서 더 많은 것을 배울 수 있습니다.

 

소스: Building a Daily Bitcoin Price Tracker with Coindeskr and Shiny in R | R-bloggers