首先,我知道这个标题听起来非常奇怪,但我找不到更好的措辞,这可能就是为什么我在之前提出的问题中找不到它。
我想知道的是我如何分析,例如自变量和因变量之间的相关性,但是看到例如只有男性之间的相关性,然后只有女性(当然我有性别作为一个数据框中的列。
这当然不仅限于相关性。我想知道,一般来说,这是最好的(也是最容易的)方法。
非常感谢
答案 0 :(得分:0)
这是dplyr包的一个很好的用例
library(dplyr)
# g will introduce a correlation for men but not women.
g <- c(rnorm(50),rep_len(0,50))
df<-data.frame(gender=rep(c('male','female'),each=50),
x = rnorm(100) + g,
y = rnorm(100) + g)
group_by(df,gender) %>% summarise(cor(x,y))
#> gender cor(x, y)
#>1 female -0.08525595
#>2 male 0.47967004
dplyr函数group_by
对列出的字段(本例中为性别)%>%
的数据进行分组,将分组的data.frame传递给计算相关性(或任何统计数据)的summarise
在该data.frame
由于summarise
仅适用于返回单个值的函数(如mean
,sd
,cor
等),因为返回的值不是&#39 ; t长度为1,那么你可以使用split-then-lapply样式:
lapply(dfs,function(x)lm(x~y,data=x))
将返回所有&#39; lm&#39;的列表对象。