r-r标记乳胶输出:sapply的问题



请参阅下面的reprex1reprex2lapply运行,但对于sapply,有一个"添加到.tex文件第87行的开头,破坏了它。

想法?

---
title: "reprex"
output:
pdf_document:
latex_engine: xelatex
editor_options: 
chunk_output_type: console
---
{r reprex1, echo=FALSE, warning=FALSE, message=FALSE, results='asis'}
library(tidyverse)
library(kableExtra)
species = c("Human", "Droid")
lapply(species, function(x){

starwars %>%
select(name, birth_year) %>%
kable() %>%
kable_styling(fixed_thead = TRUE, latex_options = c("striped", "scale_down"))%>%
row_spec(0, bold = TRUE)
})
{r reprex2, echo=FALSE, warning=FALSE, message=FALSE, results='asis'}
library(tidyverse)
library(kableExtra)
species = c("Human", "Droid")
sapply(species, function(x){

starwars %>%
select(name, birth_year) %>%
kable() %>%
kable_styling(fixed_thead = TRUE, latex_options = c("striped", "scale_down"))%>%
row_spec(0, bold = TRUE)
})

首先,我认为您可能需要在函数中添加一行,该行实际上对变量x进行了一些操作,例如过滤,否则您只返回两次相同的输出。

sapply(x, f, simplify = FALSE, USE.NAMES = FALSE)lapply(x, f)相同,因此可以将下面的sapply语句的输出与simplify = TRUEsimplify = FALSE:进行比较

library(tidyverse)
library(kableExtra)
species = c("Human", "Droid")
str(sapply(species, function(x){
starwars %>%
dplyr::filter(species == x) %>%
select(name, birth_year) %>%
kable() %>%
kable_styling(fixed_thead = TRUE, latex_options = c("striped", "scale_down")) %>%
row_spec(0, bold = TRUE)
}, simplify = FALSE)[[1]])
#>  'kableExtra' chr "<table class="table" style="margin-left: auto; margin-right: auto;">n <thead>n  <tr>n   <th style="text"| __truncated__
#>  - attr(*, "format")= chr "html"
str(sapply(species, function(x){
starwars %>%
dplyr::filter(species == x) %>%
select(name, birth_year) %>%
kable() %>%
kable_styling(fixed_thead = TRUE, latex_options = c("striped", "scale_down")) %>%
row_spec(0, bold = TRUE)
}, simplify = TRUE)[[1]])
#>  chr "<table class="table" style="margin-left: auto; margin-right: auto;">n <thead>n  <tr>n   <th style="text"| __truncated__

reprex包(v0.3.0(于2020-07-09创建的lapply返回一个列表(具有类c("kableExtra", "knitr_kable"),具有属性attr(*, "format")= chr "html")(,而sapply返回一个具有attr(*, "names")= chr "Human"的字符向量。

最新更新