将主题计数附加到R中的数据框

时间:2014-03-18 15:38:01

标签: r

我有一个主题列表:

myDat = list(Subject = c(10234, 10234, 10234, 10234, 10242, 10242, 10242, 10242, 10253, 10253, 10253, 10268, 10268, 10268, 10268))

我想添加一个计数(DayNo),该计数会随着数据框的主题变化而重新启动,如下所示:

Subjects with count

提前致谢

2 个答案:

答案 0 :(得分:2)

使用rle获取游程长度并使用sequence创建相应长度的序列。

myDat <- as.data.frame(myDat)
myDat$DayNo <- sequence(rle(myDat$Subject)$lengths)
#    Subject DayNo
# 1    10234     1
# 2    10234     2
# 3    10234     3
# 4    10234     4
# 5    10242     1
# 6    10242     2
# 7    10242     3
# 8    10242     4
# 9    10253     1
# 10   10253     2
# 11   10253     3
# 12   10268     1
# 13   10268     2
# 14   10268     3
# 15   10268     4

答案 1 :(得分:2)

ave变体:

df <- as.data.frame(myDat)
df$Day <- ave(df$Subject, df$Subject, FUN=seq_along)

产地:

   Subject Day
1    10234   1
2    10234   2
3    10234   3
4    10234   4
5    10242   1
6    10242   2
7    10242   3
8    10242   4
9    10253   1
10   10253   2
11   10253   3
12   10268   1
13   10268   2
14   10268   3
15   10268   4