如何分析r中单列中数据分割的数据?

时间:2015-01-28 17:37:38

标签: r

首先,我知道这个标题听起来非常奇怪,但我找不到更好的措辞,这可能就是为什么我在之前提出的问题中找不到它。

我想知道的是我如何分析,例如自变量和因变量之间的相关性,但是看到例如只有男性之间的相关性,然后只有女性(当然我有性别作为一个数据框中的列。

这当然不仅限于相关性。我想知道,一般来说,这是最好的(也是最容易的)方法。

非常感谢

1 个答案:

答案 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仅适用于返回单个值的函数(如meansdcor等),因为返回的值不是&#39 ; t长度为1,那么你可以使用split-then-lapply样式:

lapply(dfs,function(x)lm(x~y,data=x))

将返回所有&#39; lm&#39;的列表对象。