提前感谢您提供的任何帮助,并对无法从其他示例中弄清楚这一点表示歉意。
我有一个包含文件名称的向量,例如:
vec = c("Img_1_(set1)_2L4_s.ext", "Img_37_(set19)_2R4_s.ext", "Img_187_(set94)_4L4_s.ext", "Img_77_(set39)_4R2_s.ext")
我想通过提取创建两个单独的附加向量:
1. 并排数字之间的关键字母(L 或 R),具体情况因情况而异。例如,结果:L,R,L,R
2. “set”字符串,加上数字(在不同情况下会有所不同)附加在括号之间(带或不带括号)。例如,结果 1:(set1)、(set19)、(set94)、(set39);结果2:设置1,设置19,设置94,设置39
理想情况下使用 stringer(),但我对其他 - 更简单? - 库/函数持开放态度。
对于情况1.,我尝试了
str_extract(vec, "(?<= \\)_)[0-9]*")
,作为获取“)_”模式后跟数字[0-9]的方法,但我得到的回报都是NA(我认为我还没有完全通过) “)”模式很好)。
对于情况2.,我不得不简单地提取设置数字
str_extract(vec, "(?<=set)[0-9]*")
,并通过粘贴“设置”一词来创建另一个变量;显然对于大数据帧来说并不理想。
set = str_extract(vec, pattern = "set[0-9]+")
main = str_extract(vec, pattern = "L|R")
set
# [1] "set1" "set19" "set94" "set39"
main
# [1] "L" "R" "L" "R"