我有一个超过10,000行的文本文件,每行有一个单词,以CDID_开头,后跟10个字符,没有空格,如下所示:
a <- c("Test CDID_1254WE_1023 Sky","CDID_1254XE01478 Blue","This File named as CDID_ZXASWE_1111")
Run Code Online (Sandbox Code Playgroud)
我想提取以CDID_开头的单词,使上面的行看起来像这样:
CDID_1254WE_1023
CDID_1254XE01478
CDID_ZXASWE_1111
Run Code Online (Sandbox Code Playgroud)
这里有三个基本R选项.
选项1:使用sub()
,删除除以下CDID_*
部分之外的所有内容:
sub(".*(CDID_\\S+).*", "\\1", a)
# [1] "CDID_1254WE_1023" "CDID_1254XE01478" "CDID_ZXASWE_1111"
Run Code Online (Sandbox Code Playgroud)
选项2:使用regexpr()
,提取CDID_*
部分:
regmatches(a, regexpr("CDID_\\S+", a))
# [1] "CDID_1254WE_1023" "CDID_1254XE01478" "CDID_ZXASWE_1111"
Run Code Online (Sandbox Code Playgroud)
选项3:对于数据帧结果,我们可以使用新strcapture()
功能(v3.4.0)并在一次调用中完成所有工作:
strcapture(".*(CDID_\\S+).*", a, data.frame(out = character()))
# out
# 1 CDID_1254WE_1023
# 2 CDID_1254XE01478
# 3 CDID_ZXASWE_1111
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1146 次 |
最近记录: |