R 基于字符串向量中的模式创建列表

R 基于字符串向量中的模式创建列表,r,R,我正在尝试生成一个包含位置信息的列表。目前,我有一个字符串的字符向量。它有位置,信息,信息,信息,位置2,信息,信息,信息结构。我想要一个每个元素所在位置的列表1:信息、信息等 我曾尝试创建一个循环来标识数据中的位置,但我不知道如何将信息与位置动态连接在一起(信息的位置和位置正在变化,因此我需要动态的解决方案) 我正在寻找一份清单: 1: location1, July 123, August 345, September 678 2: location2, July 123, August 3

我正在尝试生成一个包含位置信息的列表。目前,我有一个字符串的字符向量。它有位置,信息,信息,信息,位置2,信息,信息,信息结构。我想要一个每个元素所在位置的列表1:信息、信息等

我曾尝试创建一个循环来标识数据中的位置,但我不知道如何将信息与位置动态连接在一起(信息的位置和位置正在变化,因此我需要动态的解决方案)

我正在寻找一份清单:

1: location1, July 123, August 345, September 678
2: location2, July 123, August 345...

这不是一种有用的数据格式,但您可以:

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"

此格式允许轻松地进行子集设置和其他数据处理。

我在这里提供的示例数据适用于此格式,但事实上,上面“位置”向量中捕获的位置数据具有不同的名称(即纽约、洛杉矶、纽瓦克等)。应该更具体一些。谢谢你的快速回复。这解决了我的问题。
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"