在R中为相同的值添加一列索引

Hen*_*ndy 2 r

我想根据我每年发生事件的数据集制作一个瓷砖图.举个例子,我有这样的数据:

set.seed(123)
data <- data.frame(years = sample(2000:2010, 50, replace = T))
Run Code Online (Sandbox Code Playgroud)

我想将这些绘制为x =年的瓦片图,但是在多次出现的年份中保持事件之间的分离(y方向).问题是我没有其他专栏给我一个年份倍数的连续y值.

为了说明,我有这个:

data[data$years == 2002, ]
[1] 2002 2002 2002 2002
Run Code Online (Sandbox Code Playgroud)

我想我需要这样的东西:

data[data$years == 2002, ]
    years   index
1    2002       1
2    2002       2
3    2002       3
4    2002       4
Run Code Online (Sandbox Code Playgroud)

然后我可以用x = years和平铺y = index.

谢谢你的任何建议!

jub*_*uba 5

也许与plyr:

ddply(data, .(years), mutate, index=1:length(years))
Run Code Online (Sandbox Code Playgroud)

这使 :

   years index
1   2000     1
2   2000     2
3   2000     3
4   2001     1
5   2001     2
6   2001     3
7   2001     4
8   2001     5
9   2002     1
10  2002     2
11  2002     3
12  2002     4
13  2002     5
Run Code Online (Sandbox Code Playgroud)