【发布时间】:2018-02-28 01:07:43
【问题描述】:
我有数据
dat <- data.table(id=1:8, group=c(1,1,2,2,2,3,3,3), val=c(4,10,5,10,10,6,10,10))
> dat
id group val
1: 1 1 4
2: 2 1 10
3: 3 2 5
4: 4 2 10
5: 5 2 10
6: 6 3 6
7: 7 3 10
8: 8 3 10
我想从每一个中减去其各自group 的第一个值。
> res
id group val dif
1: 1 1 4 0
2: 2 1 10 6
3: 3 2 5 0
4: 4 2 10 5
5: 5 2 10 5
6: 6 3 6 0
7: 7 3 10 4
8: 8 3 10 4
我总是对data.table 的效率感到惊讶,所以我想知道它是否可以提供解决方案。当然,任何其他有效的方法同样受欢迎。
【问题讨论】:
-
您的
val是整数,它是如何变成带小数的值的? -
意外发布,尚未完成。
-
您最近发布了很多
data.table问题,其中有几个很好的答案。请向我们展示您从他们那里学到的东西,并向我们展示您的尝试。 SO 不是免费的代码编写服务(是的,我知道我们的 FGITW 不同意)。 -
我要补充一点,在提问之前,您可以在这里轻松找到 data.table 基本使用的答案:cran.r-project.org/web/packages/data.table/vignettes/…
-
第二个Henrik,这里是OP今天发布的一个非常相似的问题的链接:stackoverflow.com/q/49013507/3817004
标签: r data.table