我想从 rpivotTable 库 生成一个带有垂直滚动条 的数据透视表,以允许查看长输出。

数据透视表是用 RStudio 中的 knitr 生成的,并且
嵌入在 flexdashboard 模板中。

我没有使用 Shiny 的仪表板,问题已经解决了,我的只是 一个用 knitr 生成的 html 仪表板。

在你给我一个减号之前......我真的尝试过,认为可能设置没有记录:我的 Rmd 代码部分如下(在两种情况下滚动都没有结果):

---
title: "Untitled"
output:
  flexdashboard::flex_dashboard:
    orientation: columns
    vertical_layout: fill
---

```{r setup, include=FALSE}
library(flexdashboard)
library(rpivotTable)

state_table <- data.frame(key=c("CA", "NY", "WA", "ON", "QU"),
                          name=c("California", "new York", "Washington", "Ontario", "Quebec"),
                          country=c("USA", "USA", "USA", "Canada", "Canada"))

month_table <- data.frame(key=1:12,
                          desc=c("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"),
                          quarter=c("Q1","Q1","Q1","Q2","Q2","Q2","Q3","Q3","Q3","Q4","Q4","Q4"))

prod_table <- data.frame(key=c("Printer", "Tablet", "Laptop"),
                         price=c(225, 570, 1120))

# Function to generate the Sales table

gen_sales <- function(no_of_recs) { # Generate transaction data randomly
                      loc <- sample(state_table$key, no_of_recs, replace=T, prob=c(2,2,1,1,1))
                      time_month <- sample(month_table$key, no_of_recs, replace=T)
                      time_year <- sample(c(2012, 2013), no_of_recs, replace=T)
                      prod <- sample(prod_table$key, no_of_recs, replace=T, prob=c(1, 3, 2))
                      unit <- sample(c(1,2), no_of_recs, replace=T, prob=c(10, 3))
                      amount <- unit*prod_table[prod,]$price

                      sales <- data.frame(month=time_month,
                                          year=time_year,
                                          loc=loc,
                                          prod=prod,
                                          unit=unit,
                                          amount=amount)

                      # Sort the records by time order

                      sales <- sales[order(sales$year, sales$month),]

                      row.names(sales) <- NULL
                      return(sales)
}

# Now create the sales fact table

sales_fact <- gen_sales(100000)


```

Column {data-width=650}
-----------------------------------------------------------------------

### Table

```{r}
library(rpivotTable)
rpivotTable(
sales_fact,
rows = c("year","month"),
cols = c("prod"),
aggregatorName = "Sum",
vals = "amount",
rendererName = "Heatmap",
height = "600px",
overflow = "scroll")

```

Column {data-width=350}
-----------------------------------------------------------------------

### Chart B

```{r}

```

### Chart C

```{r}

```

我将非常感谢任何指示如何实现 rpivottable 的垂直滚动。

最佳答案

这是一个更简单的选择:

  • 将顶部保留如下:
    ---
    title: "Untitled"
    output:
      flexdashboard::flex_dashboard:
        orientation: columns
        vertical_layout: fill
    ---
    
  • 然后只需在数据透视表块之后添加一个 CSS 块,如下所示:
    .rpivotTable{ overflow : scroll; }
    
  • 这个块的头可以是这样的:

    {css,数据透视表 CSS,echo = FALSE}

  • 希望这可以帮助!

    关于css - 滚动长数据透视表(包 rpivottable 和 knitr),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39820466/

    10-12 16:40