2016-04-21 151 views
0

我的目标是统计列中有多少重复。
所以我有一列3516 obs。 1个变量,
,所有日期都有大约144个重复,每个从1/4/16到7/3/16。
示例:(例如,为了便于说明,每个放置一个副本)
1/4/16
1/4/16
31/3/16
31/3/16
30/3/16
30/3/16
29/3/16
29/3/16
28/3/16
28/3/16
所以我使用了函数date = count(date)
,其中date是我的df日期。
但是一旦我执行它,我的日期顺序就不再按顺序了。
希望有人能解决我的问题。统计列的重复次数

+0

您的预期产出是多少? –

+0

我想创建另一列,并且在日期旁边有重复的数目。 –

回答

3

如果我们需要计数的重复总数

sum(table(df1$date)-1) 
#[1] 5 

假设,我们需要每个日期的计数,一个选择是按“日期”,并获得行数。这可以通过data.table完成。

library(data.table) 
setDT(df1)[, .N, date] 
+1

感谢这就是我要找的! –

1

如果你想在你列的重复次数的计数,你可以使用duplicated

sum(duplicated(df$V1)) 
#[1] 5 

假设V1作为列名。

编辑

按照更新,如果你想每一个数据的数量,你可以使用table功能,这将给你正是

table(df$V1) 

#1/4/16 28/3/16 29/3/16 30/3/16 31/3/16 
# 2  2  2  2  2 
+0

我道歉,如果我没有正确地短语我的问题,我的预期输出是擦除重复,并有另一列列出重复次数被计数 –

+0

@AmosOng嗨!谢谢。答案已更新。 –

2

一种方法是创建一个数据使用您的初始数据的唯一值保留该顺序,然后使用来自dplyr数据包加入两个数据帧。请注意,您的专栏的名称应该相同。

Initial_data <- structure(list(V1 = structure(c(1L, 1L, 5L, 5L, 4L, 4L, 3L, 3L, 
2L, 2L, 2L), .Label = c("1/4/16", "28/3/16", "29/3/16", "30/3/16", 
"31/3/16"), class = "factor")), .Names = "V1", class = "data.frame", row.names = c(NA, 
-11L)) 

df1 <- unique(Initial_data) 
count1 <- count(df1) 

left_join(df1, count1, by = 'V1') 
#  V1 freq 
#1 1/4/16 2 
#2 31/3/16 2 
#3 30/3/16 2 
#4 29/3/16 2 
#5 28/3/16 3