我有一个带有面板数据的数据框,这些数据是主题随着时间的推移的特征。我需要创建一个列,其序列从 1 到每个主题的最大年数。例如,如果主题1在2000年到2005年的数据框中,我需要以下序列:1,2,3,4,5,6。
以下是我数据的一小部分。最后一列 ( exp
) 是我想要得到的。此外,如果您查看第一个主题 ( 13
),您会发现 2008 年 qtty 的值为零。在这种情况下,我只需要一个NA
或一个代码(0
, 1
, -9999
),哪个都没有关系。
数据下方是我为获取该向量所做的操作,但它不起作用。
任何帮助都感激不尽。
subject season qtty exp
13 2000 29 1
13 2001 29 2
13 2002 29 3
13 2003 29 4
13 2004 29 5
13 2005 27 6
13 2006 27 7
13 2007 27 8
13 2008 0 NA
28 2000 18 1
28 2001 18 2
28 2002 18 3
28 2003 18 4
28 2004 18 5
28 2005 18 6
28 2006 18 7
28 2007 18 8
28 2008 18 9
28 2009 20 10
28 2010 20 11
28 2011 20 12
28 2012 20 13
35 2000 21 1
35 2001 21 2
35 2002 21 3
35 2003 21 4
35 2004 21 5
35 2005 21 6
35 2006 21 7
35 2007 21 8
35 2008 21 9
35 2009 14 10
35 2010 11 11
35 2011 11 12
35 2012 10 13
我的代码:
numbY<-aggregate(season ~ subject, data = toCountY,length)
colnames(numbY)<-c("subject","inFish")
toCountY$inFish<-numbY$inFish[match(toCountY$subject,numbY$subject)]
numbYbyFisher<-unique(numbY)
seqY<-aggregate(numbYbyFisher$inFish, by=list(numbYbyFisher$subject), function(x)seq(1,x,1))