Я хочу рассчитать попарные корреляции между "mpg" и всеми другими числовыми c переменными, представляющими интерес для каждой cyl в mtcars набор данных. Я хотел бы принять принцип аккуратных данных.
Это довольно просто с corrr::correlate()
.
library(dplyr)
library(tidyr)
library(purrr)
library(corrr)
data(mtcars)
mtcars2 <- mtcars[,1:7] %>%
group_nest(cyl) %>%
mutate(cors = map(data, corrr::correlate),
stretch = map(cors, corrr::stretch)) %>%
unnest(stretch)
mtcars2 %>%
filter(x == "mpg")
. Используя corrr::correlate()
, все доступные парные корреляции были вычислены. Я мог бы использовать dplyr::filter()
, чтобы выбрать интересующие корреляции.
Однако, когда наборы данных велики, много вычислений go для нежелательных корреляций, что делает этот подход очень трудоемким. Поэтому я попытался рассчитать только mpg против других. Я не очень знаком с purrr , и следующий код не работает.
mtcars2 <- mtcars[,1:7] %>%
group_nest(cyl) %>%
mutate(comp = map(data, ~colnames),
corr = map(comp, ~cor.test(data[["mpg"]], data[[.]])))