Как мне правильно отобразить виртуальную таблицу в RMarkdown?

#r #latex #r-markdown #vtable #kableextra

#r #Латекс #r-markdown #виртуальная таблица #kableextra

Вопрос:

поскольку я новичок в RMarkdown и / или R в целом, у меня возникли небольшие проблемы со следующим:

Я хотел бы отобразить виртуальную таблицу (созданную с использованием библиотеки vtable) как обычную таблицу таблиц в RMarkdown (я создаю PDF с помощью LaTeX). Я понимаю, что vtable может возвращать knitr-кабель, и поэтому его можно использовать в качестве входных данных для kable_styling, чтобы я мог поработать с параметрами latex. Похоже, это работает до определенного момента.

Вот код на данный момент:

 vtable(heart_faliure_data, labels = label) %>% 
kable_styling(latex_options = c("striped", "scale_down"))
 

Но результирующая таблица выглядит следующим образом:
введите описание изображения здесь

Почему команда latex вообще отображается?

Я благодарен за любую помощь, которую вы можете мне оказать.

Базу данных можно найти здесь: https://archive.ics.uci.edu/ml/datasets/Heart неудача клинические записи

И вот полный файл Rmd:

 
    ---
    title             : "Data mining using R for heart failure clinical records Dataset"
    
    floatsintext      : yes
    figurelist        : yes
    tablelist         : yes
    footnotelist      : no
    linenumbers       : no
    linkcolor         : "blue"
    mask              : no
    draft             : no
    
    classoption       : "doc"
    output            : papaja::apa6_pdf
documents
    header-includes:
    - usepackage{booktabs}
    - usepackage{longtable}
    - usepackage{array}
    - usepackage{multirow}
    - usepackage{wrapfig}
    - usepackage{float}
    - usepackage{colortbl}
    - usepackage{pdflscape}
    - usepackage{tabu}
    - usepackage{threeparttable}
    - usepackage{threeparttablex}
    - usepackage[normalem]{ulem}
    - usepackage{makecell}
    - usepackage{xcolor}
    ---
    
    ```{r include = FALSE}
    library("tidyverse")
    library("kableExtra")
    library("rsample")
    library("recipes")
    library("parsnip")
    library("yardstick")
    library("viridisLite")
    library("GGally")
    library("vtable")
    library("qwraps2")
    library("ggplot2")
    library("htmlTable")
    library("egg")
    library("dplyr")
    library("afex")
    library("papaja")
    library("kableExtra")
    library("magrittr")
    library("vtable")
    
    knitr::opts_chunk$set(echo = TRUE)
    heart_faliure_data <- read.csv(file = "../Data/heart_failure_clinical_records_dataset.csv", header = FALSE, skip=1)
    c_names <- c("Age",
                 "Anaemia",
                 "cr_ph",
                 "diabetes",
                 "ejection_fraction",
                 "high_blood_pressure",
                 "platelets",
                 "serum_creatinine",
                 "serum_sodium",
                 "sex",
                 "smoking",
                 "time",
                 "DEATH_EVENT")
    colnames(heart_faliure_data) <- c_names
    ```
    newpage  
    # Introductiom
    
    ```{r echo=FALSE}
    knitr::kable(head(heart_faliure_data), booktabs = TRUE) %>%
              kable_styling(latex_options = c("striped", "scale_down"))
    ```
    
    ```{r echo=FALSE}
    label <- data.frame(
      Age = "Age of the patient",
      Anaemia = "Decrease of red blood cells or hemoglobin",
      creatinine_phosphokinase = "level of the CPK enzyme in the blood (mcg/L)",
      diabetes = "if the patient has diabetes",
      ejection_fraction = "percentage of blood leaving the heart at each contraction",
      high_blood_pressure = "if the patient has hypertension",
      platelets = "platelets in the blood (kiloplatelets/mL)",
      serum_creatinine = "level of serum creatinine in the blood (mg/dL)",
      serum_sodium = "level of serum sodium in the blood (mEq/L)",
      sex = "sex of the patient, woman or man",
      smoking = "if the patient smokes or not",
      time = "follow-up period",
      DEATH_EVENT = " if the patient deceased during the follow-up period"
    )
    
    vtable(head(heart_faliure_data), labels = label, out="latex") #%>%
              kable_styling(latex_options = c("striped", "scale_down"))
    ```

 

Приветствую!

Редактировать: форматирование кода

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

1. Я добавил необходимую информацию

2. В вопросе есть ссылка на набор данных («Репозиторий машинного обучения UCI: набор данных клинических записей о сердечной недостаточности» archive.ics.uci.edu/ml/datasets/Heart неудача клинические записи ). Правда, вам не нужен файл .bin для его воспроизведения. Я избавлюсь от них.

Ответ №1:

Проблема out = 'latex' в вашем коде. out = 'latex' выдает код LaTeX в качестве выходных данных, а не a kable , переопределяя выходные данные kable по умолчанию, которые вы получаете, выполняя vtable в документе RMarkdown. Вы можете исправить это, удалив out = 'latex' параметр или изменив его на out = 'kable' .

Извините, что не ответил раньше, вероятно, мне следует настроить оповещение или что-то в этом роде для виртуальной таблицы.