如何结合 R ifelse() 和 kable()

how to combine R ifelse() and kable()

我定期 运行 有 R Markdown 脚本,其中包含我称之为违规者的条件表。这是一个示例数据框:

df <- data.frame(Person = c("Jack", "Jill"), Violator = c("F", "F"))

#>   Person Violator
#> 1   Jack        F
#> 2   Jill        F

我只想显示违规者(Violator == "T"),这个月没有。所以我下面的 'normal' kable 代码给了我这个错误,"subscript out of bounds",这是我所期望的。

如果 violator 不等于 "T",我如何将我的 kable 代码修改为 'do nothing'。 ifelse() 是正确的选择吗?我对 kableExtra() 解决方案持开放态度。

kable(df %>% filter(Violator == "T"), "html", align = "l") %>%
  kable_styling("striped", "hover", full_width = F) %>%
  column_spec(1, bold = T, background = "#FFFFFF") %>%
  collapse_rows(columns = 1)

我认为这种简单的方法应该有效:

```{r}
temp <- df %>% filter(Violator == "T")

if(nrow(temp) != 0){
kable(temp, "html", align = "l") %>%
  kable_styling("striped", "hover", full_width = F) %>%
  column_spec(1, bold = T, background = "#FFFFFF") %>%
  collapse_rows(columns = 1)
}
```