Рассчитать значимость корреляции в сгруппированных данных с помощью dplyr

У меня есть сгруппированные данные, для которых я хотел бы протестировать несколько основных статистических данных вывода.

library(tidyverse)

df <- data.frame(x=runif(50, min = 0, max = 25),y=runif(50, min = 10, max = 25), group=rep(0:1,25))

df %>%
  group_by(group) %>%
  summarize(cor(x,y))

Здесь я могу легко получить корреляцию, но мне также нужно проверить ее статистическую значимость. К сожалению, такие опции, как cor.test, не работают в dyplr. Есть ли простой обходной путь?


person Marco    schedule 06.02.2020    source источник
comment
вы также можете применить cor.test для групп. Что вам нужно ? Например df %>% group_by(group) %>% summarize(test = cor.test(x,y)$p.value)   -  person Ronak Shah    schedule 06.02.2020


Ответы (1)


Может быть, это то, что вы хотите?

df %>%
    group_by(group) %>%
    summarize(cor.test(x,y)[["p.value"]])

Дело в том, что cor.test() возвращает список, а не одно значение, поэтому вам нужно выбрать из списка тот элемент, который вас интересует.

person Georgery    schedule 06.02.2020