Вот пример функции broom
tidy
, которая берет результаты тестов и других операций и форматирует их как «аккуратные» фреймы данных.
Для первых prop.test
, которые вы опубликоваливывод tidy
выглядит следующим образом:
library(tidyverse)
broom::tidy(prop.test(TableAvE_Island$Island, TableAvE_Island$Sum))
#> estimate1 estimate2 statistic p.value parameter conf.low
#> 1 0.2222222 0.5294118 4.456017 0.03477849 1 -0.5602711
#> conf.high
#> 1 -0.05410802
#> method
#> 1 2-sample test for equality of proportions with continuity correction
#> alternative
#> 1 two.sided
Чтобы сделать это для всех переменных в вашем фрейме данных по сравнению с суммой, я gather
преобразовал его в длинную форму
table_long <- gather(TableAvE_Island, key = variable, value = val, -Sum)
head(table_long)
#> # A tibble: 6 x 3
#> Sum variable val
#> <int> <chr> <int>
#> 1 18 Other 10
#> 2 85 Other 19
#> 3 18 Island 4
#> 4 85 Island 45
#> 5 18 N_Shelf 1
#> 6 85 N_Shelf 1
Затем сгруппировал данные длинной формы по переменной, перенаправив их в do
, что позволяет вызывать функцию для каждой из групп в фрейме данных, используя .
в качестве подставки для подмножества данных.Затем я позвонил tidy
в столбец, содержащий вложенные результаты prop.test
.Это дает вам фрейм данных всех релевантных результатов теста с указанием каждого из «Остров», «N_Shelf» и т. Д.
table_long %>%
group_by(variable) %>%
do(test = prop.test(x = .$val, n = .$Sum)) %>%
broom::tidy(test)
#> # A tibble: 5 x 10
#> # Groups: variable [5]
#> variable estimate1 estimate2 statistic p.value parameter conf.low
#> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 Island 0.222 0.529 4.46 0.0348 1 -0.560
#> 2 N_Shelf 0.0556 0.0118 0.0801 0.777 1 -0.0981
#> 3 N_Shore 0 0.106 0.972 0.324 1 -0.205
#> 4 Other 0.556 0.224 6.54 0.0106 1 0.0523
#> 5 S_Shore 0.167 0.129 0.00163 0.968 1 -0.183
#> # ... with 3 more variables: conf.high <dbl>, method <fct>,
#> # alternative <fct>
Создано в 2018-05-10 с помощью Представить пакет (v0.2.0).