我有一个 7 维的字符串,我想将其分成 7 个不同的字符串。该字符串以逗号分隔,即每个维度之间有一个逗号。通常,要将维度分离为不同的字符串,我只需使用分离函数并指定 sep = ", "。然而,我的维度之一是一个字符串,在某些情况下包含逗号,这使得上述方法过时。有没有一种方法可以有条件地分隔字符串或不同的正则表达式模式,我可以使用它来分隔维度,同时保持每个维度的正确值?
这是我正在处理的问题的示例。下面是我正在使用的字符串类型的示例。我有维度名称,后跟冒号,然后是该维度的值。请注意,我不需要帮助将维度名称与值分开,我已经有一个解决方案:
my_str <- "dim1: 1, dim2: a, b, dim3: 3"
如您所见,
dim2
的值为a, b
,因此如果我将separate()
函数与sep = ", "
一起使用,我最终会得到以下三个字符串:
"dim1: 1"
"dim2: a"
"b "
当我想要的是
"dim1: 1"
"dim2: a, b"
"dim3: 3"
unlist(strsplit(my_str, ",\\s*(?=\\w+:)", perl = TRUE))
[1] "dim1: 1" "dim2: a, b" "dim3: 3"