Ho un frame di dati raggruppato (utilizzando dplyr
) con 50 colonne numeriche, che sono suddivise in gruppi utilizzando una delle colonne. Voglio calcolare una matrice di correlazione tra tutte le colonne non raggruppanti e una particolare colonna.Matrice di correlazione delle variabili raggruppate in dplyr
un esempio con il set di dati mtcars
:
data(mtcars)
cor(mtcars[,2:11], mtcars[,2])
restituisce una lista delle correlazioni tra miglia per galeone e le altre variabili.
Diciamo però che desidero calcolare questo stessa correlazione per ogni gruppo di cilindri, ad es .:
library(dplyr)
mtcars <-
mtcars %>%
group_by(cyl)
Come faccio a fare questo? Sto pensando qualcosa di simile
mtcars %>%
group_by(cyl) %>%
summarise_each(funs(cor(...))
Ma io non so cosa mettere nel ...
come io non so come specificare una colonna nella catena dplyr
.
correlate: Linear model and dplyr - a better solution? ha una risposta che è molto simile a @ di akrun risposta. Inoltre, su cross validated: https://stats.stackexchange.com/questions/4040/r-compute-correlation-by-group ha altre soluzioni che utilizzano pacchetti che non sono dplyr
.