Моя цель - подсчитать, сколько дубликатов в столбце.
Итак, у меня есть столбец из 3516 наблюдений. одной переменной,
есть все даты с примерно 144 дубликатами каждая с 1/4/16 по 7/3/16.
Пример: (я помещаю по 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 )
где date - моя дата df.
Но как только я выполняю ее, моя последовательность дат больше не в порядке.
Надеюсь, кто-нибудь сможет решить мою проблему.

r
2
Amos Ong 21 Апр 2016 в 09:45

3 ответа

Лучший ответ

Если нам нужно посчитать общее количество дубликатов

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

Предположим, нам нужно количество каждой даты, один из вариантов - сгруппировать по «дате» и получить количество строк. Это можно сделать с помощью data.table.

library(data.table)
setDT(df1)[, .N, date]
4
akrun 21 Апр 2016 в 07:09

Если вы хотите подсчитать количество дубликатов в столбце, вы можете использовать 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 
4
Ronak Shah 21 Апр 2016 в 08:38

Один из способов - создать фрейм данных с уникальными значениями ваших исходных данных, которые сохранят порядок, а затем использовать 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
Sotos 21 Апр 2016 в 07:06