Суммарные групповые различия после ANOVA в R - PullRequest
1 голос
/ 09 мая 2020

Я только что закончил выполнение одностороннего ANOVA-теста с использованием следующего кода:

Anova_Results <- aov(TotalComm ~ treatment, data = ANOVA_Relationship_Subset)
summary(Anova_Results)

Как мне затем создать таблицу, достойную публикации APA, которая выглядит следующим образом: enter image description here

Вот мои данные:

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"))

Заранее благодарю за помощь!

Ответы [ 2 ]

1 голос
/ 09 мая 2020

Можно использовать 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 итоговая таблица изначально выглядит так.

enter image description here

После небольшого редактирования вручную таблица выглядит так.

enter image description here

Я оставлю использование пакета 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)`

... и вывод:

enter image description here

0 голосов
/ 09 мая 2020

Это работает:


ANOVA_Relationship_Subset_sum <- ANOVA_Relationship_Subset %>%
  dplyr::group_by(treatment) %>%
  dplyr::summarize(
    n=n(),
    mean=mean(RELATIONSHIP), 
    `std. dev` = sd(RELATIONSHIP)
  )
ANOVA_Relationship_Subset_sum
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...