【发布时间】:2014-07-30 09:41:57
【问题描述】:
给定以下data.frame
d <- rep(c("a", "b"), each=5)
l <- rep(1:5, 2)
v <- 1:10
df <- data.frame(d=d, l=l, v=v*v)
df
d l v
1 a 1 1
2 a 2 4
3 a 3 9
4 a 4 16
5 a 5 25
6 b 1 36
7 b 2 49
8 b 3 64
9 b 4 81
10 b 5 100
现在我想在按 l 分组后添加另一列。额外的列应该包含 v_b - v_a 的值
d l v e
1 a 1 1 35 (36-1)
2 a 2 4 45 (49-4)
3 a 3 9 55 (64-9)
4 a 4 16 65 (81-16)
5 a 5 25 75 (100-25)
6 b 1 36 35 (36-1)
7 b 2 49 45 (49-4)
8 b 3 64 55 (64-9)
9 b 4 81 65 (81-16)
10 b 5 100 75 (100-25)
括号内是如何计算值的方式。
我正在寻找一种使用 dplyr 的方法。所以我从这样的事情开始
df %.%
group_by(l) %.%
mutate(e=myCustomFunction)
但是我应该如何定义 myCustomFunction?我认为 data.frame 的分组会产生另一个(子)data.frame,它是该函数的参数。但这不是……
【问题讨论】: