避免在R Shiny中连字符后换行

时间:2019-07-04 13:27:35

标签: html r shiny dt flexdashboard

似乎Shiny至少在与数据表一起使用时,会在连字符(-)字符后自动引入换行符(请参见下面的示例)。我想这与a similar problem in HTML有关,并且可能在将文档呈现为HTML时发生,但是在这里用“不间断”版本(‑)代替连字符是行不通的,也没有用长版本()代替连字符。

这是一个重现此问题的示例代码,其中我创建了一个变量,名称中带有减号,并希望在表头中显示其名称(包括减号)。如您所见,在-之后出现换行符。

---
title: "Example"
runtime: shiny
theme: simplex
vertical_layout: fill
output:
  flexdashboard::flex_dashboard:
  orientation: rows
---

Explore
======================================================================

```{r echo = FALSE}
library("tidyverse")
library("shiny")
library("DT")
```

```{r echo = FALSE}
createDataTable <- function (data) {

  data %>%  

    DT::datatable(
      extensions = c('Buttons','Scroller'),
      rownames=FALSE,
      options = list(
        paging = TRUE,
        pageLength = nrow(data),
        searching = TRUE,
        fixedColumns = TRUE,
        autoWidth = FALSE,
        ordering = TRUE,
        scroller = TRUE,
        scrollX = '400px',
        scrollY = '300px',
        dom = 'Bfrtip',
        buttons = list(
          'copy',
          list(
            extend='collection',
            buttons = list (
              list(extend='csv', filename='catalog'),
              list(extend='excel', filename='catalog'),
              list(extend='pdf', filename='catalog')
            ),
            text='Download'),
          'print'
        )
      )
    )
}
```

```{r echo = FALSE}
DT::renderDataTable(
  server=FALSE, {
  mtcars %>% dplyr::mutate(`-mpg` = -mpg, a_longer_name_for_mpg = mpg) %>% createDataTable()
})

```

有人知道如何在不更改所使用的DT函数且不拒绝在列标题中包含连字符的情况下避免这种现象吗?

编辑

如果在全屏模式下查看页面,则似乎没有分页符。但这与变量名称的长度无关(代码也会更新以创建一个具有较长名称的新变量)。因此,应该有一种独立于屏幕尺寸的避免这种行为的方法。

这是我的sessionInfo()

R version 3.6.0 (2019-04-26)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Arch Linux

Matrix products: default
BLAS:   /usr/lib/libblas.so.3.8.0
LAPACK: /usr/lib/liblapack.so.3.8.0

locale:
 [1] LC_CTYPE=es_ES.UTF-8       LC_NUMERIC=C               LC_TIME=es_ES.UTF-8        LC_COLLATE=es_ES.UTF-8    
 [5] LC_MONETARY=es_ES.UTF-8    LC_MESSAGES=es_ES.UTF-8    LC_PAPER=es_ES.UTF-8       LC_NAME=C                 
 [9] LC_ADDRESS=C               LC_TELEPHONE=C             LC_MEASUREMENT=es_ES.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
 [1] compiler_3.6.0        rsconnect_0.8.13      htmltools_0.3.6       tools_3.6.0           flexdashboard_0.5.1.1
 [6] yaml_2.2.0            Rcpp_1.0.1            rmarkdown_1.13        knitr_1.23            jsonlite_1.6         
[11] xfun_0.7              digest_0.6.19         evaluate_0.13    

1 个答案:

答案 0 :(得分:1)

您可以使用类 new_product_desc 0 \npara descripton of product 1, ... 1 \npara 1 descrtion of product 2\npara 2 description of product 2... .... 229 \npara description of product 230... [230 rows x 1 columns] 来禁止换行:

nowrap