按第一个字符串选择/分组直到特定符号

Selecting / grouping by first character string until a specific symbol

美好的一天,

我目前正在处理一个数据集,其中有一列采用这种格式。

PA-121-1512-asa-1241
PWW-121-1571-accs-21561
PSAWA-171-1616-gfaa-161
QSF-16-1613-63-asdfa
H-电梯-15-asf-1112
QSF-asa-sda-afas-112

“-”符号前的第一个字母序列被识别为“建筑物位置”因此,我想将这些第一个字母序列保存在单独的列中。

我想知道如何 select > 复制 > 将这些值粘贴到一个新列中,这样我最终得到一个列,例如:

地点:

PPW
PSAWA
QSF
H
QSF

我试过函数:

str_extract("PA-121-1512-asa-1241", ".+?(?<=-)")

PA-121-1512-asa-1241 是我 select 整列的示例。
这里我打印出来的是 PA- 而不是 PA.

如果需要更多数据和更详尽的解释,请告诉我。我对在这个网站上写问题还很陌生。

节日快乐!, E.D.D.

Post post...
在再次查看我的代码以按照赛勒斯先生的建议复制粘贴适当的示例后,我发现了我的错误。而不是:

str_extract("PA-121-1512-asa-1241", ".+?(?<=-)")

是:

str_extract("PA-121-1512-asa-1241", "[^-]+")

这个returns PA而不是PA-
这表明阅读你的代码 50 倍确实有帮助,因为之前的 49 倍没有帮助。

如果谁有更优雅/更高效的方法,我仍然很感兴趣!由于 运行 这段代码通过 500 万行花了我很长一段时间。

而不是:
str_extract("PA-121-1512-asa-1241", ".+?(?<=-)") 是
str_extract("PA-121-1512-asa-1241", "[^-]+")
这个returns“PA”而不是“PA-” 这表明阅读您的代码 50 次确实有帮助,因为之前的 49 次没有。

str_extract() “模式”所需的格式很难正确处理。我的老师建议我多读 Grep。