Tôi có khung dữ liệu được nhóm (sử dụng dplyr
) với 50 cột số, được chia thành các nhóm bằng một trong các cột. Tôi muốn tính toán một ma trận tương quan giữa tất cả các cột không nhóm và một cột cụ thể.Ma trận tương quan của các biến nhóm trong dplyr
Một ví dụ với mtcars
bộ dữ liệu:
data(mtcars)
cor(mtcars[,2:11], mtcars[,2])
trả về một danh sách các mối tương quan giữa dặm mỗi thuyền buồm và các biến khác.
Hãy nói rằng tuy nhiên, tôi muốn để tính toán cùng sự tương quan này cho từng nhóm trụ, ví dụ .:
library(dplyr)
mtcars <-
mtcars %>%
group_by(cyl)
Làm thế nào tôi sẽ làm điều này? Tôi đang nghĩ đến một cái gì đó giống như
mtcars %>%
group_by(cyl) %>%
summarise_each(funs(cor(...))
Nhưng tôi không biết phải đặt trong ...
như tôi không biết làm thế nào để xác định một cột trong chuỗi dplyr
.
Liên quan: Linear model and dplyr - a better solution? có câu trả lời rất giống với câu trả lời của @ akrun. Đồng thời, trên xác thực chéo được xác thực: https://stats.stackexchange.com/questions/4040/r-compute-correlation-by-group có các giải pháp khác sử dụng các gói không phải là dplyr
.