R - 如何从字符串中获取特定位置的单词?

时间:2016-07-31 13:15:34

标签: r

如何从字符串中获取特定位置的单词?

例如,我希望在英国伦敦获得station code

code <- getStationCode("London", region="UNITED KINGDOM")
code

结果:

[1] "UNITED KINGDOM    EGLINTON/LONDOND EGAE               55 02N  007 09W    9   X     T          6 GB"
[2] "UNITED KINGDOM    LONDON/GATWICK A EGKK        03776  51 08N  000 10W   62   X     T          6 GB"
[3] "UNITED KINGDOM    LONDON CITY AIRP EGLC               51 30N  000 03E    5   X     T          6 GB"
[4] "UNITED KINGDOM    LONDON/HEATHROW  EGLL        03772  51 29N  000 27W   24   X     T          6 GB"
[5] "UNITED KINGDOM    LONDON WEA CENTE EGRB        03779  51 30N  000 07W   39   X                7 GB"

例如,我选择列表中的第二项:

second <- code[2]

我会得到:

"UNITED KINGDOM    LONDON/GATWICK A EGKK        03776  51 08N  000 10W   62   X     T          6 GB"

然后如何从该字符串中获取EGKK

1 个答案:

答案 0 :(得分:3)

我们可以使用str_extract提取一个或多个大写字母,然后是正则表达式查找(一个或多个空格(\\s+),后跟一个或多个数字([0-9]+))< / p>

library(stringr)
str_extract(str1, "[A-Z]+(?=\\s+[0-9]+)")
#[1] "EGKK"

如果电台代码是4个字母的字符串

str_extract(str1, "\\b[A-Z]{4}\\b")
#[1] "EGKK"

数据

str1 <- "UNITED KINGDOM    LONDON/GATWICK A EGKK        03776  51 08N  000 10W   62   X     T          6 GB"