聚合相关性(R::dplyr)
我试图在数据帧的不同子集上计算相关矩阵。我发现这段代码用于计算数据框中两个变量之间的相关性:聚合相关性(R::dplyr),r,aggregate,dplyr,R,Aggregate,Dplyr,我试图在数据帧的不同子集上计算相关矩阵。我发现这段代码用于计算数据框中两个变量之间的相关性: library(dplyr) mtcars %>% group_by(cyl) %>% summarise(V1=cor(hp,wt)) 但是我想计算数据框中几个变量之间的相关矩阵。我希望这是返回(最好)作为相关矩阵列表。比如: mtcars %>% group_by(cyl) %>% cor(data.frame(hp,wt,qsec) 我可以用dplyr做这个吗?在我看来
library(dplyr)
mtcars %>% group_by(cyl) %>% summarise(V1=cor(hp,wt))
但是我想计算数据框中几个变量之间的相关矩阵。我希望这是返回(最好)作为相关矩阵列表。比如:
mtcars %>% group_by(cyl) %>% cor(data.frame(hp,wt,qsec)
我可以用dplyr做这个吗?在我看来,由或dlply制作的好老
在这里更好,但是如果你真的想用dplyr
,我想你可以用do
:
o <- mtcars %>% group_by(cyl) %>% do(cor=cor(cbind(.$hp, .$wt, .$qsec)))
# Source: local data frame [3 x 2]
# Groups: <by row>
# cyl cor
# 1 4 <dbl[3,3]>
# 2 6 <dbl[3,3]>
# 3 8 <dbl[3,3]>
使用基本R和by
:
o <- by(mtcars[, c('hp', 'wt', 'qsec')], mtcars$cyl, cor, simplify=F)
在我看来,由
或dlply编写的好老在这里更好,但是如果你真的想使用dplyr
,我想你可以使用do
:
o <- mtcars %>% group_by(cyl) %>% do(cor=cor(cbind(.$hp, .$wt, .$qsec)))
# Source: local data frame [3 x 2]
# Groups: <by row>
# cyl cor
# 1 4 <dbl[3,3]>
# 2 6 <dbl[3,3]>
# 3 8 <dbl[3,3]>
使用基本R和by
:
o <- by(mtcars[, c('hp', 'wt', 'qsec')], mtcars$cyl, cor, simplify=F)
在我看来,由
或dlply编写的好老在这里更好,但是如果你真的想使用dplyr
,我想你可以使用do
:
o <- mtcars %>% group_by(cyl) %>% do(cor=cor(cbind(.$hp, .$wt, .$qsec)))
# Source: local data frame [3 x 2]
# Groups: <by row>
# cyl cor
# 1 4 <dbl[3,3]>
# 2 6 <dbl[3,3]>
# 3 8 <dbl[3,3]>
使用基本R和by
:
o <- by(mtcars[, c('hp', 'wt', 'qsec')], mtcars$cyl, cor, simplify=F)
在我看来,由
或dlply编写的好老在这里更好,但是如果你真的想使用dplyr
,我想你可以使用do
:
o <- mtcars %>% group_by(cyl) %>% do(cor=cor(cbind(.$hp, .$wt, .$qsec)))
# Source: local data frame [3 x 2]
# Groups: <by row>
# cyl cor
# 1 4 <dbl[3,3]>
# 2 6 <dbl[3,3]>
# 3 8 <dbl[3,3]>
使用基本R和by
:
o <- by(mtcars[, c('hp', 'wt', 'qsec')], mtcars$cyl, cor, simplify=F)
这是一个老问题,但我在这里更新,以防对大家有所帮助
您可以使用purrr
包中的函数将包含相关矩阵的TIBLE转换为可进一步操作的对象列表
具体来说,要扩展@mathematic.coffee提供的答案:
库(tidyverse)
数据(mtcars)
mtcars%>%
dplyr::分组人(气缸)%>%
dplyr::do(cor=cor(cbind(.$hp、.$wt、.$qsec))%%
purrr::transpose()%>%#%#这是一个老问题,但我在这里更新,以防对大家有所帮助
您可以使用purrr
包中的函数将包含相关矩阵的TIBLE转换为可进一步操作的对象列表
具体来说,要扩展@mathematic.coffee提供的答案:
库(tidyverse)
数据(mtcars)
mtcars%>%
dplyr::分组人(气缸)%>%
dplyr::do(cor=cor(cbind(.$hp、.$wt、.$qsec))%%
purrr::transpose()%>%#%#这是一个老问题,但我在这里更新,以防对大家有所帮助
您可以使用purrr
包中的函数将包含相关矩阵的TIBLE转换为可进一步操作的对象列表
具体来说,要扩展@mathematic.coffee提供的答案:
库(tidyverse)
数据(mtcars)
mtcars%>%
dplyr::分组人(气缸)%>%
dplyr::do(cor=cor(cbind(.$hp、.$wt、.$qsec))%%
purrr::transpose()%>%#%#这是一个老问题,但我在这里更新,以防对大家有所帮助
您可以使用purrr
包中的函数将包含相关矩阵的TIBLE转换为可进一步操作的对象列表
具体来说,要扩展@mathematic.coffee提供的答案:
库(tidyverse)
数据(mtcars)
mtcars%>%
dplyr::分组人(气缸)%>%
dplyr::do(cor=cor(cbind(.$hp、.$wt、.$qsec))%%
purrr::transpose()%%>%#%#它计算每个单独的cyl
的hp
和wt
之间的相关性。它计算每个单独的cyl
的hp
和wt
之间的相关性。它计算每个单独的cyl
的hp
和wt
之间的相关性。它是为每个单独的cyl
计算hp
和wt
之间的相关性。非常感谢。这个答案非常全面@mathematic.coffee。我并没有致力于dplyr,我只是在努力学习。也许有一天我会发展到一个启蒙阶段,在这个阶段,所有的数据操作都会简化为基本的R命令<代码>do.call(rbind,lappy(o,`[`,lower.tri(o[[1]]))
或类似的呼叫后的将允许每组一个接一个地报告双变量相关性。非常感谢。这个答案非常全面@mathematic.coffee。我不致力于dplyr,我现在只是尝试学习它。也许有一天我会发展到启蒙阶段所有数据操作都简化为基本的R命令。:)do.call(rbind,lappy(o,`[`,lower.tri(o[[1]]))
或类似的呼叫后的将允许每组一个接一个地报告双变量相关性。非常感谢。这个答案非常全面@mathematic.coffee。我不致力于dplyr,我现在只是尝试学习它。也许有一天我会发展到启蒙阶段所有数据操作都简化为基本的R命令。:)do.call(rbind,lappy(o,`[`,lower.tri(o[[1]]))
或类似的呼叫后的将允许每组一个接一个地报告双变量相关性。非常感谢。这个答案非常全面@mathematic.coffee。我不致力于dplyr,我现在只是尝试学习它。也许有一天我会发展到启蒙阶段所有数据操作都简化为基本的R命令。:do.call(rbind,lappy(o,`[`,lower.tri(o[[1]])
或类似于by
调用后的操作将允许为每组逐个报告双变量相关性。