Не пригодный формат данных, но вы здесь:
split(original_vector,
cumsum(
grepl("location", original_vector, fixed = TRUE) #search for the word "location"
)
)
#$`1`
#[1] "location1" "July 123" "August 345" "September 678"
#
#$`2`
#[1] "location2" "July 123" "August 345"
Или (благодаря @Ronak), если у вас есть вектор местоположений:
split(original_vector, cumsum(original_vector %in% locations)
Если ваши данные былифактически в описанном формате (1 место, 3 записи информации) я бы превратил original_vector
в матрицу:
original_vector = c("location1","July 123","August 345", "September 678", "location2","July 123","August 345", "September 678")
t(matrix(original_vector, 4))
# [,1] [,2] [,3] [,4]
#[1,] "location1" "July 123" "August 345" "September 678"
#[2,] "location2" "July 123" "August 345" "September 678"
Этот формат позволяет легко выполнять поднаборы и другую обработку данных.