计算列

时间:2016-04-21 06:45:18

标签: r

我的目标是计算一列中有多少重复。
所以我有一个3516块的列。 1个变量,
从16/4/16到7/3/16各有约144个重复的日期。例如:(我为每个例子放1份) 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) )
日期是我的df日期。
但是一旦执行它,我的日期顺序就不再有了。
希望有人能解决我的问题。

4 个答案:

答案 0 :(得分:3)

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

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

假设我们需要每个日期的计数,一个选项是按'日期'分组并获得行数。这可以使用data.table完成。

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

答案 1 :(得分:2)

一种方法是创建一个数据框,其中包含初始数据的唯一值,这将保留顺序,然后使用left_join包中的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

答案 2 :(得分: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 

答案 3 :(得分:1)

library(dplyr)
library(janitor)

df%>% get_dupes(Variable) %>% tally()

如果需要,您也可以在管道中添加 group_by