在r中使用dplyr构建组之间的差异

在r中使用dplyr构建组之间的差异,r,statistics,difference,dplyr,R,Statistics,Difference,Dplyr,我正在使用dplyr,我想知道是否有可能在一行中计算组之间的差异。如下面的小示例所示,任务是计算A组和B组标准化“分”变量之间的差异 library(dplyr) # creating a small data.frame GROUP <- rep(c("A","B"),each=10) NUMBE <- rnorm(20,50,10) datf <- data.frame(GROUP,NUMBE) datf2 <- datf %.% group_by(GROUP) %

我正在使用dplyr,我想知道是否有可能在一行中计算组之间的差异。如下面的小示例所示,任务是计算A组和B组标准化“分”变量之间的差异

library(dplyr)
# creating a small data.frame
GROUP <- rep(c("A","B"),each=10)
NUMBE <- rnorm(20,50,10)
datf <- data.frame(GROUP,NUMBE)

datf2 <- datf %.% group_by(GROUP) %.% mutate(cent = (NUMBE - mean(NUMBE))/sd(NUMBE))

gA <- datf2 %.% ungroup() %.% filter(GROUP == "A") %.% select(cent)
gB <- datf2 %.% ungroup() %.% filter(GROUP == "B") %.% select(cent)

gA - gB

谢谢大家!

假设每组有10个,添加一个指数1:10,1:10,并总结出差异:

> datf2$entry=c(1:10,1:10)
> datf2 %.% ungroup() %.% group_by(entry) %.% summarize(d=cent[1]-cent[2])
Source: local data frame [10 x 2]

   entry          d
1      1 -0.8272879
2      2 -0.9159827
3      3 -0.5064762
4      4  0.4211639
5      5  1.3681720
6      6  3.3430289
7      7  1.0086822
8      8 -0.6163907
9      9 -0.7325220
10    10 -2.5423875
比较:

> gA - gB
         cent
1  -0.8272879
2  -0.9159827
3  -0.5064762
4   0.4211639
5   1.3681720
6   3.3430289
7   1.0086822
8  -0.6163907
9  -0.7325220
10 -2.5423875

是否有方法将
条目
字段注入数据或
dplyr
调用?我不确定,它似乎依赖于对数据了解太多的函数…

谢谢您的启发。我进一步开发了此解决方案:

mutate(datf2,difference=filter(datf2,GROUP==“A”)$cent-filter(datf2,GROUP==“B”)$cent)


这会将结果作为列添加到data.frame中。

我认为这里的部分问题是您试图减去两个向量,而DF没有所谓的元素“对齐”的代码。我想如果你有一列
c(1:10,1:10)
,然后在上面分组,然后在某处用减号做一个
总结
,这可能是可行的#模糊突变+行数可能?
> gA - gB
         cent
1  -0.8272879
2  -0.9159827
3  -0.5064762
4   0.4211639
5   1.3681720
6   3.3430289
7   1.0086822
8  -0.6163907
9  -0.7325220
10 -2.5423875