R + 빛나는 어떤 망치? 똑바로 Shiny, flexdashboard 또는 shinydashboard?
모드 "너무 광범위한 질문"해머에 맞을 위험에 처 Shiny
했을 때 대화 형 R 도구와 패키지가 많이 등장하는 상황에서 언제 어떤 것을 사용합니까?
Shiny- 나에게는 프로젝트가 반짝이는 서버에서 실행되어야하지만 최선의 선택이라는 단점 만 있습니다.
shinydashboard- 반짝이지만 콜 아웃에 대한 멋진 값 상자가 있습니다.
flexdashboard - Rmd에 작성하십시오. 똑바로 샤이니가 얻지 못하는 것은 무엇입니까? 데이터를 전달하는 데 만족한다면 고객에게 이메일을 보내는 것이 유용할까요? 나는 놀았
flexdashboard
지만 datatable (library (DT))로 작업 할 수 없기 때문에 몇 번 더 반복해야한다고 생각합니다.
다른 답변을 살펴보면 이 질문을하는 것은 저 혼자가 아닙니다 .
제작자는 패키지 / 접근법을 보여주기 위해 많은 갤러리를 제공하고 있지만 어떤 경로로 진행해야하는지 어떻게 알 수 있습니까?
하나를 다른 것보다 사용하면 분명한 이점은 무엇입니까?
만들어야 할 뉘앙스가 하나 있습니다. 상호 작용은 코드를 실행하는 서버가 반드시 필요한 것은 아닙니다. 클라이언트 측에서 실행되는 임베디드 JavaScript를 사용하여 상호 작용을 제공 할 수 있습니다 (예 : 플롯, 하이 차트, 전단지 등). 따라서 "상호 작용"이라는 단어를 사용하지 않고 상호 작용을 명시 적으로 설명하면 옵션은 다음과 같습니다.
- Shiny : 사용자 입력에 대해 R 코드를 실행하려면 뒤에 서버가 필요합니다. 모든 레이아웃을 구현할 수 있습니다. 서버 측 (R) 또는 클라이언트 측 (임베디드 JavaScript)을 처리하여 대화 형 코드를 실행할 수 있습니다.
- shinydashboard : 사용자 입력에 대해 R 코드를 실행하려면 그 뒤에 서버가 필요합니다. 대시 보드 레이아웃을 구현할 수 있습니다. 대시 보드 레이아웃에서 작동하도록 설계된 몇 가지 특정 위젯을 포함합니다. 서버 측 (R) 또는 클라이언트 측 (임베디드 JavaScript)을 처리하여 대화 형 코드를 실행할 수 있습니다.
- flexdashboard : 대시 보드처럼 보이는 문서입니다. 또한 대시 보드 레이아웃에서 작동하도록 설계된 몇 가지 특정 위젯이 포함되어 있습니다. 클라이언트 측 (임베디드 JavaScript에서) 대화 형 코드 만 실행할 수 있습니다.
따라서 기본적으로 필요한 모든 상호 작용이 기존 패키지 (htmlwidgets 사용)에서 제공 될 수 있다면 flexdashboard 만 사용할 수 있으며 Shiny 서버에 배포 할 필요가 없습니다. 그렇지 않으면 Shiny 서버에 배포해야하며 Shiny 또는 shinydashboard를 사용해야합니다.
반짝이는 앱을 실행하려면 Shiny Server가 필요하다는 데 동의하지 않습니다. 나는 단순히 우리 서버의 포트 5050 (방화벽 뒤)에서 내 반짝이는 앱을 호스팅하고 모든 클라이언트는 ip : port를 통해 앱에 액세스 할 수 있습니다. 이 작업을 수행하기 위해 RStudio 세션을 1 개만 실행하고 있습니다.
라우터를 통해 포트 포워딩을 켜면 인터넷을 통해서도이 앱에 액세스 할 수 있지만 보안상의 이유로 허용하지 않습니다.
Shiny가 웹 페이지를 사용자 정의하기 위해 제공하는 유연성이 마음에 듭니다.
ShinyDashboard는 모든 CSS와 HTML을 직접 작성하지 않고도 상업적인 외관을 제공한다는 점에서 훌륭합니다.
Flexdashboard는 iFrame이나 다른 것을 통해 앱을 삽입하는 대신 마크 다운을 처리 할 수있는 서비스에서 호스팅 할 수 있다는 점에서도 좋습니다.
나는 flexdashboard 안에 반짝이는 모듈을 넣는 것을 좋아합니다. 헤더 섹션에 넣는 runtime: shiny
한 YAML
반짝이는 모듈을 사용하는 것은 비교적 간단합니다. 상대적으로 말하자면, 하루 동안 RStudio의 모든 예제를 읽은 다음 코드로 동일한 작업을 수행하십시오. 학습 곡선을 넘어 가면 flexdashboard의 모듈은 향후 개발을 훨씬 더 간소화되고 정신적으로 쉽게 만들어 주며 제 경험상 제가 해결하도록 요청받은 기본 데이터 기반 질문에 실제로 집중할 수있는 기회를 제공합니다. 나는 생각한다flexdashboards + shiny modules
두 세계의 장점 : 일부 레이아웃 항목을 분할하는 flexdash, 코드 섹션을 쉽게 추가 또는 제거, 시각적으로 구별되는 레이아웃에서 애플리케이션 코드의 다양한 측면 분리 (RMD 파일의 '청크'음영) , 등), shiny
관찰자, 프록시 또는 사용자 지정 레이아웃 설정과 같은 더 복잡하고 본질적인 작업 을 계속 진행할 수 있습니다.
- shinydashboard는 기본 shiny보다 더 나은 UI 요소를 가지고 있지만 현대적인 테마와 같습니다. 나는 그것이 다른 2의 경쟁자로 나열되어서는 안된다고 생각합니다.
- flexdashboard는 UI 배열, htmlwidgets 등을위한 간단한 규칙을 사용하여 RMarkdown을 향상 시켰습니다. Shiny를 사용할 수 있지만 제한적입니다.
- Shiny를 사용하려면 UI 및 동작에 대한 더 많은 코드를 작성하고 html, css, 특히 이해하는 데 시간이 필요한 반응 형과 관련된 더 많은 것을 배워야합니다. 결국 당신은 모든 힘과 통제권을 얻습니다.
'development' 카테고리의 다른 글
Spring Boot가 maven-surefire-plugin ClassNotFoundException org.apache.maven.surefire.booter.ForkedBooter를 실행하지 못합니다. (0) | 2021.01.09 |
---|---|
Flexbox 항목 사이의 간격 (0) | 2021.01.08 |
Eclipse가 문서 맨 아래를 스크롤하도록하려면 어떻게해야합니까? (0) | 2021.01.08 |
DataTables 고정 헤더가 와이드 테이블의 열과 잘못 정렬 됨 (0) | 2021.01.08 |
PHP가 배열 키에 문자열을 사용하도록하려면 어떻게해야합니까? (0) | 2021.01.08 |