【发布时间】:2020-07-25 18:58:06
【问题描述】:
我想为 mtcars 中的每个 cyl 计算 "mpg" 与所有其他感兴趣的数值变量之间的成对相关性数据集。我想采用整洁的数据原则。
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() 来选择感兴趣的相关性。
但是,当数据集很大时,大量计算会涉及不需要的相关性,这使得这种方法非常耗时。所以我试着只计算 mpg 与其他人。我对purrr不是很熟悉,下面的代码不起作用。
mtcars2 <- mtcars[,1:7] %>%
group_nest(cyl) %>%
mutate(comp = map(data, ~colnames),
corr = map(comp, ~cor.test(data[["mpg"]], data[[.]])))
【问题讨论】:
标签: r dplyr correlation tidyr purrr