Во-первых, я думаю, вы могли бы добавить в свою функцию строку, которая действительно что-то делает с переменной x, например, фильтрует, иначе вы просто возвращаете дважды один и тот же результат.
sapply(x, f, simplify = FALSE, USE.NAMES = FALSE)
is то же, что и lapply(x, f)
, поэтому вы можете сравнить вывод оператора sapply
ниже с simplify = TRUE
vs. simplify = 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__
Создано 9 июля 2020 г. пакет REPEX (v0.3.0) lapply
возвращает список (с классом c("kableExtra", "knitr_kable")
с атрибутом attr(*, "format")= chr "html")
), а sapply
возвращает вектор символов с attr(*, "names")= chr "Human"
.