我有一个数据框df1
df1:
a c
1: 1 6
2: 2 8
3: 3 1
4: 45 3
5: 2 8
我需要找到重复的行数,但也要保留重复的行。结果应该是:
a c count
1: 1 6 1
2: 2 8 2
3: 3 1 1
4: 45 3 1
5: 2 8 2
因为第2行和第5行是重复的。但我只能得到能给出答案的解决方案
a c count
1: 1 6 1
2: 2 8 2
3: 3 1 1
4: 45 3 1
做
df1<-data.table(df1)
df1[, .N, by = list(a,c)]
我怎样才能得到理想的结果?
答案 0 :(得分:3)
您也可以在base
R:
df1$count <- with(df1, ave(a, list(a, c), FUN = length))
df1
# a c count
# 1: 1 6 1
# 2: 2 8 2
# 3: 3 1 1
# 4: 45 3 1
# 5: 2 8 2
答案 1 :(得分:3)
为了完整起见,这是dplyr的方法
df <- data.frame(
a = c(1, 2, 3, 45, 2),
c = c(6, 8, 1, 3, 8)
)
library(dplyr)
df %.% group_by(a, c) %.% mutate(count = n())
## Source: local data frame [5 x 3]
## Groups: a, c
##
## a c count
## 1 1 6 1
## 2 2 8 2
## 3 3 1 1
## 4 45 3 1
## 5 2 8 2