Есть ли способ сделать красивые таблицы для Word в R? - PullRequest
5 голосов
/ 26 сентября 2019

Я задаю свой вопрос по SO, и это моя последняя надежда :-) Я должен подготовить отчет по Word.Я работаю на R Markdown, где мне нужно создать много таблиц.Я бы хотел, чтобы мои столы были красивыми!Но все, что я пробовал (pander, KableExtra, flextable), не сработало.

Я беру результаты из coxph моделей, собираю их, а затем строю свой data.frame, который выглядит следующим образомthis:

  1                                        Model 1                         Model 2
2                                         n= 375                          n= 374
3                                          e= 65                           e= 64
4                                       PH= 0.46                        PH= 0.97
5            Weight                          ---     1.0  [ 1.0 ; 1.1 ] p = 0.03
6              Size                          --- 1.0  [ 1.0 ; 1.0 ] p = < 10^-3^
7              GR I                          ---                               1
8             GR II                          --- 1.2e+06  [ 0.0 ; Inf ] p = 1.00
9            GR III                          --- 1.4e+06  [ 0.0 ; Inf ] p = 1.00
10            Roads                            1 1.1  [ 1.0 ; 1.1 ] p = < 10^-5^
11            Score  1.0  [ 0.9 ; 1.0 ] p = 0.04                             ---
12 Likelihood ratio Chi-two= 4.48 p-value= 0.034  Chi-two= 2.73 1 p-value= 0.098
                                V4
1                          Model 3
2                           n= 374
3                            e= 64
4                         PH= 0.96
5      1.0  [ 1.0 ; 1.1 ] p = 0.05
6  1.0  [ 1.0 ; 1.0 ] p = < 10^-2^
7                                1
8  1.3e+06  [ 0.0 ; Inf ] p = 1.00
9  1.7e+06  [ 0.0 ; Inf ] p = 1.00
10 1.1  [ 1.1 ; 1.1 ] p = < 10^-6^
11     1.0  [ 0.9 ; 1.0 ] p = 0.10

На Latex легко создавать красивые таблицы, и я использовал xtable, чтобы получить это Latex table.

On R Markdown, Я использую print(kable(table)), но я не могу использовать какие-либо функции из KableExtra для улучшения представления (это не работает при вязании на слово).Кроме того, мои таблицы сделаны в цикле, что усложняет ситуацию.

Есть ли у вас какие-либо подсказки для создания такой таблицы в Word из R Markdown?

В частности:

  • мы можем перейти к строке в ячейке?
  • можем ли мы создать многорядную ячейку?
  • можем ли мы создать многоколоночную ячейку?
  • как добавить полосы в моем случае, когда KableExtra не работает?

Спасибо за любой ответ на вопросы выше: -)

Ответы [ 2 ]

1 голос
/ 26 сентября 2019

Вы уже пробовали пакет stargazer?Вы можете указать формат вывода таблицы с параметром type.Единственное, что работает для меня при вязании на слово, это формат text.Смотрите пример ниже, который работает в цикле.Он должен работать, но может потребоваться некоторая настройка.

```{r word_table, comment = ''}
library(stargazer)

lapply(1:3, function(x){
  print(paste("table", x))
  stargazer(attitude, type = 'text')      
})
```

Я адаптировал этот фрагмент кода из: Вывод Stargazer - это код, а не таблица

1 голос
/ 26 сентября 2019

kableExtra ориентирован на таблицы для HTML-контента.Однако иногда я также использую его для создания таблиц для документа Word с помощью предыдущего вывода html.Сначала я установил спецификации для таблицы в kableExtra (см. Документацию; важно: пропустите атрибут html в спецификациях kableExtra, это затруднит последующее копирование таблиц в Word).Затем я просто связываю соответствующий документ RMarkdown в html, просто используя results='show' (в этих случаях я не использую print).Из полученного HTML-документа вы сможете скопировать и вставить таблицы в Word.Ты пробовал это?Я предполагаю, что команда print не допускает обычного стиля таблицы kableExtra.Не могли бы вы также перебрать свои таблицы, используя lapply?

...