【问题标题】:How to exclude a row from sorting in datatable with R Markdown HTML output如何使用 R Markdown HTML 输出从数据表中的排序中排除一行
【发布时间】:2019-08-21 17:10:56
【问题描述】:

我在 R Markdown 文档中有一个数据表,我将其呈现为 HTML。该表已启用排序,允许用户通过单击字段来重新排序字段。我想做的是从排序中排除特定行,这样无论用户的排序如何,它都将始终保持在同一位置(最后一行)。

例如,在此表中,我想将Hornet Sportabout 保留为最后一行,而不管用户如何对列进行排序:

---
title: "Test Datatable"
date: "August 14, 2019"
output: html_document
---

```{r}
library(dplyr)
library(DT)

mtcars[1:5, 1:2] %>%
  datatable(options = list(ordering = TRUE))
```

用户通过 mpg 订购时的期望结果,例如:

【问题讨论】:

    标签: r r-markdown dt


    【解决方案1】:

    这是使用 dplyr 的替代答案(更紧凑)

    # Create sample dataframe
    df <- data.frame(
      Vehicle = c('Mazda RX4','Mazda RX4 Wag','Datsun 710','Hornet 4 Drive','Hornet Sportabout'),
      mpg = c(21, 21, 22.8, 21.4, 18.7),
      cyl = c(6, 6, 4, 6, 8)
    )
    
    # Create new variable to identify rows you want to keep at the bottom.
    df$keepatbottom <- 0;
    df$keepatbottom[df$Vehicle=='Hornet Sportabout'] <- 1;
    
    # Sort by mpg and keepatbottom at the same time
    library(dplyr)
    df <- arrange(df,keepatbottom,mpg)
    

    【讨论】:

    • 这个答案很适合我的目的。是否可以对其进行调整以允许过滤?
    【解决方案2】:

    您需要以某种方式在底部标识所需的行。本质上,您需要按两列排序。此示例代码有效:

    # Create sample dataframe
    df <- data.frame(
      Vehicle = c('Mazda RX4','Mazda RX4 Wag','Datsun 710','Hornet 4 Drive','Hornet Sportabout'),
      mpg = c(21, 21, 22.8, 21.4, 18.7),
      cyl = c(6, 6, 4, 6, 8)
    )
    
    # Sort lowest to highest by mpg
    df <- df[order(df$mpg, decreasing=FALSE), ]
    
    # Create new variable to identify rows you want to keep at the bottom.
    df$keepatbottom <- 0;
    df$keepatbottom[df$Vehicle=='Hornet Sportabout'] <- 1;
    df <- df[order(df$keepatbottom, decreasing=FALSE), ]
    

    【讨论】:

    • 感谢您的回答,但我并没有尝试使用 R 对表格进行排序,而是试图确保在由此代码生成的 html_document 中的数据表中,某个特定的顺序用户不能更改行。我已经更新了我的问题,以便更明确地说明我在寻找什么。
    猜你喜欢
    • 2017-08-15
    • 1970-01-01
    • 2019-10-26
    • 2016-12-14
    • 1970-01-01
    • 2012-01-22
    • 2016-12-24
    • 2016-10-17
    • 1970-01-01
    相关资源
    最近更新 更多