Можно использовать R Markdown и knit::kable()
для печати таблиц в Microsoft Word. Следовательно, мы можем суммировать фрейм данных с помощью dplyr::summarise()
, чтобы создать средние значения, стандартные ошибки и доверительные интервалы для ячеек в анализе ANOVA.
Простой пример с использованием данных Crompton о росте зубов за 1947 год выглядит следующим образом:
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
## Printing an APA style table
This is an R Markdown document.
```{r anovaTable, echo = FALSE}
library(datasets)
data(ToothGrowth)
library(knitr)
library(dplyr)
ToothGrowth %>% group_by(dose,supp) %>%
summarise(n = n(),mean = mean(len),
sd = sd(len),
se = sd / sqrt(n),
lcl = mean - se*qt(.975,n),
ucl = mean + se*qt(.975,n)) -> theTable
```
`r kable(theTable)`
При сшивании с выходными данными Microsoft Word итоговая таблица изначально выглядит так.
После небольшого редактирования вручную таблица выглядит так.
Я оставлю использование пакета kableExtra
для программного улучшения выходной таблицы в качестве упражнения для читателя.
Используя данные из исходного сообщения, R Markdown и итоговый результат выглядят следующим образом.
```{r opAnovaTable, echo = FALSE}
data <- structure(list(RELATIONSHIP = c(4.33333349227905, 1, 4.33333349227905,
3.33333325386047, 4.83333349227905, 3), TotalComm = c(279.166687011719,
250, 275, 312.5, 291.666687011719, 237.5), treatment = c("Control",
"Control", "Control", "Control", "Control", "Control"), beep = c(1,
1, 1, 1, 1, 1)), row.names = c(NA, -6L), class = c("tbl_df",
"tbl", "data.frame"))
data %>% group_by(treatment) %>%
summarise(Count = n(),
Mean = mean(TotalComm),
SD = round(sd(TotalComm),3),
SE = round(SD / sqrt(Count),3),
Lower = round(Mean - SE*qt(.975,Count),3),
Upper = round(Mean + SE*qt(.975,Count),3)) -> theTable
```
### Table 2: data from original post
`r kable(theTable)`
... и вывод: