Base R
dat$Occurrence <- as.integer(ave(dat$Time, dat$Time, FUN=length))
dat
# Time Occurrence
# 1 12/31/2020 1:00:00 PM 4
# 2 12/31/2020 1:00:00 PM 4
# 3 12/31/2020 2:00:00 PM 1
# 4 12/31/2020 1:00:00 PM 4
# 5 12/31/2020 1:00:00 PM 4
tidyverse
library(dplyr)
dat %>%
group_by(Time) %>%
mutate(Occurrence2 = n())
# # A tibble: 5 x 3
# # Groups: Time [2]
# Time Occurrence Occurrence2
# <chr> <int> <int>
# 1 12/31/2020 1:00:00 PM 4 4
# 2 12/31/2020 1:00:00 PM 4 4
# 3 12/31/2020 2:00:00 PM 1 1
# 4 12/31/2020 1:00:00 PM 4 4
# 5 12/31/2020 1:00:00 PM 4 4
data.table
library(data.table)
as.data.table(dat)[, Occurrence3 := .N, by = .(Time)][]
# Time Occurrence Occurrence3
# <char> <int> <int>
# 1: 12/31/2020 1:00:00 PM 4 4
# 2: 12/31/2020 1:00:00 PM 4 4
# 3: 12/31/2020 2:00:00 PM 1 1
# 4: 12/31/2020 1:00:00 PM 4 4
# 5: 12/31/2020 1:00:00 PM 4 4
Data
dat <- structure(list(Time = c("12/31/2020 1:00:00 PM", "12/31/2020 1:00:00 PM", "12/31/2020 2:00:00 PM", "12/31/2020 1:00:00 PM", "12/31/2020 1:00:00 PM")), class = "data.frame", row.names = c(NA, -5L))