Можем ли мы использовать функцию клея внутри функции knitr kable?

#r #r-markdown #knitr #kable #r-glue

Вопрос:

У меня есть несколько наборов таблиц (набор таблиц 1, набор таблиц 2,…), поэтому я хочу создать функцию, которая будет:

  1. свяжите мой стол (в уценке R)
  2. и автоматически изменяйте заголовок таблицы в зависимости от набора таблиц, который я использую

Ниже приведена функция, которую я создаю, однако, когда я запускаю функцию, она возвращает меня:

  1. стол (который я ожидаю)
  2. строка [1] "1" (я не знаю, что это такое и почему функция возвращает это)
    Не могли бы вы помочь мне объяснить эту строку и как ее удалить?

Вы можете воспроизвести, используя приведенные ниже коды

 table.set1 <- rbind(c(3, 27),
                    c(33, 9))
rownames(table.set1) <- c("Studying", "Not-studying")
colnames(table.set1) <- c("Men", "Women")

myfunction <- function(mydata, mytext) {
            knitr::kable(mydata,
                        caption = glue::glue("Table set {print(mytext)}")
            )
}


> myfunction(mydata = table.set1, mytext = "1")
## [1] "1"
##
##
## Table set 1
##
## |             | Men| Women|
## |:------------|---:|-----:|
## |Studying     |   3|    27|
## |Not-studying |  33|     9|

> class(myfunction(mydata = table.set1, mytext = "1"))
## [1] "1"
## [1] "knitr_kable"
           
 

Комментарии:

1. зачем вам это нужно print() ?

2. @Майк, О, глупый я… Я удалил печать (), и теперь она работает как заклинание. Большое вам спасибо!!