我的目标是计算一列中有多少重复。
所以我有一个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日期。
但是一旦执行它,我的日期顺序就不再有了。
希望有人能解决我的问题。
答案 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
。