У меня есть данные в следующем формате:
Data <- data.frame(
Names = c("Person A", "Person B","Person F", "Person G", "Person F", "Person G", "Person Q", "Person R"),
Time_Stamp = c("2013-08-01 07:06:00", "2013-08-01 07:06:00", "2013-08-01 07:53:00", "2013-08-01 07:53:00", "2013-08-01 11:01:00", "2013-08-01 11:01:00", "2013-08-01 11:08:00", "2013-08-19 06:57:00")
)
#> Data
# Names Time_Stamp
# 1 Person A 2013-08-01 07:06:00
# 2 Person B 2013-08-01 07:06:00
# 3 Person F 2013-08-01 07:53:00
# 4 Person G 2013-08-01 07:53:00
# 5 Person F 2013-08-01 11:01:00
# 6 Person G 2013-08-01 11:01:00
# 7 Person Q 2013-08-01 11:08:00
# 8 Person R 2013-08-19 06:57:00
Я хотел бы создать код, который идентифицирует, когда сочетание (порядок не имеет значения) людей появляется вместе с одной и той же отметкой времени. Так, например, Персона F и Персона G появляются вместе в 8:14 01.08.13, поэтому они являются группой и получают уникальное имя группы. Если они снова появятся вместе, они все равно получат одно и то же имя. Проблема, с которой я столкнулся, состоит в том, что реальные данные составляют почти 100 000 строк, и я не знаю, сколько у меня в нем комбинаций людей, которые отображаются с одной и той же отметкой времени, и в комбинациях может быть более двух человек.
Я бы хотел, чтобы новые данные выглядели так:
Desired <- data.frame(
Names = c("Person A", "Person B","Person F", "Person G", "Person F", "Person G", "Person Q", "Person R"),
Time_Stamp = c("2013-08-01 07:06:00", "2013-08-01 07:06:00", "2013-08-01 07:53:00", "2013-08-01 07:53:00", "2013-08-01 11:01:00", "2013-08-01 11:01:00", "2013-08-01 11:08:00", "2013-08-19 06:57:00"),
Group = c("Group 1", "Group 1", "Group 2", "Group 2", "Group 2", "Group 2", "No Group", "No Group")
)
# Names Time_Stamp Group
# 1 Person A 2013-08-01 07:06:00 Group 1
# 2 Person B 2013-08-01 07:06:00 Group 1
# 3 Person F 2013-08-01 07:53:00 Group 2
# 4 Person G 2013-08-01 07:53:00 Group 2
# 5 Person F 2013-08-01 11:01:00 Group 2
# 6 Person G 2013-08-01 11:01:00 Group 2
# 7 Person Q 2013-08-01 11:08:00 No Group
# 8 Person R 2013-08-19 06:57:00 No Group