2017-09-13 24 views
0

我们打算使用包含两个(或更多)小部件的R创建一个HTML页面。一个小部件保存时间线,另一个小部件保存来自数据帧的数据表。如何在R中的同一HTML页面中导出两个HTML小部件?

我们能够创建两个单独的HTML页面来做到这一点,如下所示:

library(timevis) 
library(htmlwidgets) 

data <- data.frame(
    id  = 1:4, 
    content = c("Item one", "Item two", 
       "Ranged item", "Item four"), 
    start = c("2016-01-10", "2016-01-11", 
       "2016-01-20", "2016-02-14 15:00:00"), 
    end  = c(NA, NA, "2016-02-04", NA) 
) 

timevis(data) 
htmlwidgets::saveWidget(timevis(data), "timeline.html", selfcontained = F) 

其他部件是一个数据表,如下所示:

acs <- read.csv(url("http://stat511.cwick.co.nz/homeworks/acs_or.csv")) 
acs_temp <- datatable(acs, options = list(pageLength = 10)) 
htmlwidgets::saveWidget(acs_temp, "page2.html", selfcontained = F) 

这节省了持有两个独立的网页时间轴可视化和HTML数据表。我们希望以这种方式编写R脚本,将表和时间线可视化插入到同一个HTML页面上。我们应该怎么做?

回答

1

使用[R降价创建具有多个展品/控件的HTML页面:

--- 
title: "Untitled" 
output: html_document 
--- 

```{r setup, include=FALSE} 
knitr::opts_chunk$set(echo = TRUE) 
library(timevis) 
library(DT) 
data <- data.frame(
    id  = 1:4, 
    content = c("Item one", "Item two", 
       "Ranged item", "Item four"), 
    start = c("2016-01-10", "2016-01-11", 
       "2016-01-20", "2016-02-14 15:00:00"), 
    end  = c(NA, NA, "2016-02-04", NA) 
) 

acs <- read.csv(url("http://stat511.cwick.co.nz/homeworks/acs_or.csv")) 
acs_temp <- DT::datatable(acs, options = list(pageLength = 10)) 
``` 

## R Markdown 

```{r timeviz} 
timevis(data) 
acs_temp 
``` 
+0

谢谢。你是否也可以包括如何在纵向模式下进行格式化,以便页面并排包含图表和数据表格?我查看了一些RMarkdown布局示例,但它们看起来很复杂。 – learnerX

+0

问题是关于组合小部件。格式化可能很复杂,但在这种情况下,表格太宽而无法与几乎任何东西并排放置。通常情况下,添加'fig.show ='hold''就足以在R Markdown中并排获取两个项目。 –

相关问题