我的数据框看起来像这样:
group <- c("A", "A", "A", "A", "B", "B", "B", "B", "C", "C", "C", "C", "C", "C")
value <- c(3:6, 1:4, 4:9)
type <- c("d", "d", "e", "e", "g", "g", "e", "e", "d", "d", "e", "e", "f", "f")
df <- cbind.data.frame(group, value, type)
df
group value type
1 A 3 d
2 A 4 d
3 A 5 e
4 A 6 e
5 B 1 g
6 B 2 g
7 B 3 e
8 B 4 e
9 C 4 d
10 C 5 d
11 C 6 e
12 C 7 e
13 C 8 f
14 C 9 f
在因素“组”的每个级别中,我想减去基于“类型”的值,这样(对于组“A”)3 - 5(d 的第一个值 - e 的第一个值)和 4 - 6(第二个值) d 的值 - d) 的第二个值。我的结果应该与此类似。
A
group d_e
1 A -2
2 A -2
B
group g_e
1 B -2
2 B -2
C
group d_e d_f e_f
1 C -2 -4 -2
2 C -2 -4 -2
因此,如果 - 至于 C 组 - 有超过 2 种类型,我想计算每种类型组合之间的差异。
Reading 这个帖子我想我也许可以使用 ddply 和转换。然而,鉴于每个组都包含不同的类型和不同数量的类型,我正在努力寻找一种自动分配类型的方法。
您对我如何管理有什么建议吗?