Blog Elements

You can display blog posts in various ways with the “Blog Post” element/shortcode. You can see one example here and even more at the blog main menu item of this demo.

Coindeskr 팩키지와 Shiny를 활용한 비트코인 가격 추적기 구축

인정합시다. 비트코인으로 전 세계가 미쳐 버렸습니다. 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

비지니스를 위한 R을 배우는 6 가지 이유

비즈니스를 위한 데이터 과학 (DS4B)은 비즈니스 분석의 미래이지만 아직 시작해야 할 부분을 파악하기가 어렵습니다. 마지막으로하고 싶은 일은 잘못된 도구로 시간을 낭비하는 것입니다.…

Pipes in R Tutorial For Beginners (article) by DataCamp

Learn more about the famous pipe operator %>% and other pipes in R, why and how you should use them and what alternatives you can consider! You might have already seen or used the pipe operator when you're working with packages such…

Five Tips to Improve Your R Code (article) by DataCamp

Five useful tips that you can use to effectively improve your R code, from using seq() to create sequences to ditching which() and much more! @drsimonj here with five simple tricks I find myself sharing all the time with fellow R users…

Introduction to Skewness · R Views

In previous posts here, here, and here, we spent quite a bit of time on portfolio volatility, using the standard deviation of returns as a proxy for volatility. Today we will begin to a two-part series on additional statistics that aid our…

networkD3: D3 JavaScript Network Graphs from R

 Dev-version: 0.4  About This started as a port of Christopher Gandrud’s R package d3Network for creating D3network graphs to the htmlwidgets framework. The htmlwidgets framework greatly simplifies the package’s syntax for exporting…

thomasp85/patchwork: The Composer of ggplots

patchwork     The goal of patchwork is to make it ridiculously simple to combine separate ggplots into the same graphic. As such it tries to solve the same problem as gridExtra::grid.arrange() but using an API that incites exploration…