为流行病学周创建一个新变量

时间:2015-01-16 19:11:03

标签: r

我有一个列周和另一年(87周)的数据框。我需要创建一个新列(weekseq),其中包含一个从第一个到最后一个顺序标识周的数字。我不知道该怎么做。有人可以帮帮我吗?

示例:

id周月年周年周

1 1 1 2014 2014/1
1 1 1 2013 2013/1
1 2 1 2014 2014/2
1 2 1 2013 2013/2
1 3 1 2014 2014/3
1 3 1 2013 2013/3
1 4 1 2014 2014/4
1 4 1 2013 2013/4
1 5 1 2014 2014/5
1 5 1 2013 2013/5
1 6 2 2014 2014/6
1 6 2 2013 2013/6
1 7 2 2014 2014/7
1 7 2 2013 2013/7
1 8 2 2014 2014/8
1 8 2 2013 2013/8
1 9 2 2014 2014/9
1 9 2 2013 2013/9
1 10 3 2014 2014/10 1 10 3 2013 2013/10 1 11 3 2014 2014/11 1 11 3 2013 2013/11 1 12 3 2014 2014/12 1 12 3 2013 2013/12

1 个答案:

答案 0 :(得分:0)

此解决方案需要' dplyr'和' plyr'包裹:

# Coerce into tbd_df
datatbl <- tbl_df(data)

# Arrange, giving more weight to year than week
datatbl <- arrange(datatbl, year, month, week)

# Create a new column that numbers the arranged rows sequentially
seqtbl <- ddply(datatbl, .(id), transform, sequence=seq_along(id))