【发布时间】:2019-10-15 08:41:01
【问题描述】:
我有兴趣将 dataf 中的日期列更改为与 id 对应的有序数字(最早日期 = 1,第二早 = 2 ... 等等),如 results$order 中所示。如果一个 id 只出现一次,我希望 order 为 1。
date=c("2012-02-18", "2013-03-01", "2013-04-11", "2013-06-06", "2013-09-20", "2013-07-02")
datef=strptime(date, format="%Y-%m-%d")
dataf=data.frame(id=c(20, 20, 20, 21, 21, 22),
date=datef,
service=c("web", "phone", "person", "phone", "web", "web"))
> dataf
id date service
1 20 2012-02-18 web
2 20 2013-03-01 phone
3 20 2013-04-11 person
4 21 2013-06-06 phone
5 21 2013-09-20 web
6 22 2013-07-02 web
我什至很难找到正确的措辞来寻找这个困境的答案。我想胁迫吗?还是索引?把dataf$dates放到results$order下面?
results=data.frame(id=c(20, 20, 20, 21, 21, 22),
order=c(1,2,3,1,2,1),
service=c("web", "phone", "person", "phone", "web", "web"))
> results
id order service
1 20 1 web
2 20 2 phone
3 20 3 person
4 21 1 phone
5 21 2 web
6 22 1 web
【问题讨论】:
-
为什么
id=20电话出现在同一个id 的person 条目之前,它排在第三位? -
@r2evans 哎呀修复了。