【发布时间】:2018-09-10 22:58:46
【问题描述】:
我有下面的数据框:
name<-c("ab","ab","ab","ac","ac","ac","d","d","d")
value<-c(9,9,6,10,10,4,8,9,8)
week<-c(31,31,32,31,31,35,32,33,35)
c<-data.frame(name,value,week)
如果之前的week 存在,我想创建一个新列,其中包含每个name 的周值之间的差异。如果不是,将显示 0。对于下面的数据框,答案如下:
name value week df
1 ab 9 31 0
2 ab 9 31 0
3 ab 6 32 -3
4 ac 10 31 0
5 ac 10 31 0
6 ac 4 35 0
7 d 8 32 0
8 d 9 33 1
9 d 8 35 0
【问题讨论】:
-
WRT 命名:
c对于数据框来说是一个糟糕的名称选择,因为c是一个非常常见的 R 函数。我也反对将df作为变量名,因为它通常用作表示“数据框”的简写。我的建议是将您的数据框命名为df和您的新列diff,但要各自命名。 -
@DanY - 同意
c,但diff也是一个常用函数! -
我无法反驳 :) 我想我只是想为 colname 选择更具描述性的东西;显然我的成功是微不足道的。
标签: r