将重复行计数为新列而不对重复行进行分组

时间:2013-12-25 19:32:45

标签: r duplicates

我的数据看起来像这样:

   A     B     C
1  a     1     ff
2  b     1     re
3  c     1     sd
5  a     2     as
6  c     4     fe
7  d     5     tt
8  d     5     tt
9  d     9     oi

我想添加一个新列D,它将包含所有数据中A列中元素重复的次数,如下所示:

   A     B     C   D
1  a     1     ff  2
2  b     1     re  1
3  c     1     sd  2
5  a     2     as  2
6  c     4     fe  2
7  d     5     tt  3
8  d     5     tt  3
9  d     9     oi  3

我不想像这个线程那样简化我的数据分组原始数据: https://stat.ethz.ch/pipermail/r-help/2011-March/270481.html

提前感谢您的帮助!

2 个答案:

答案 0 :(得分:4)

您可以使用table

执行此操作
data <- read.table(text='A B C
a 1 ff
b 1 re
c 1 sd
a 2 as
c 4 fe
d 5 tt
d 5 tt
d 9 oi', header=T)

data$D <- table(data$A)[data$A]

答案 1 :(得分:3)

未经测试的代码,但这些内容应该有效 -

library(data.table)
dt <- data.table(df)
dt[,D := .N, by = 'A']