【发布时间】:2022-01-08 12:27:07
【问题描述】:
我有一个列中包含字符串的数据框。如何在数字之前仅提取大写子字符串并将它们添加到另一列?以 DE 为例,但还有更多国家/地区的缩写,它们总是出现在数字之前。
TD<-data.frame(a=c("WHATEVERDE 11111","","Whatever DE 11111","DE 11111",""),
b=c("","What DE EverDE 1111","","",""),
c=c("Whatever","","","","WhateverDE 11111"))
我想创建另一个列,如下所示:
> TD
a b c result
1 WHATEVERDE 11111 Whatever DE
2 What DE EverDE 1111 DE
3 Whatever DE 11111 DE
4 DE 11111 DE
5 WhateverDE 11111 DE
我尝试应用解决方案:
sub("^([[:alpha:]]*).*", "\\1", "DE 11111") but is not universal.
带有缩写的向量:
names<-c('AT','BE','DE','BG','CZ','DK','FR','GR','ES','NL','HU','GB','IT')
【问题讨论】:
-
您是否有一个应该匹配的缩写向量,或者它是非特定的,即。匹配数字前的任何大写字母以及是否有空格?
-
是的,我可以接受带有国家/地区缩写的向量。它们总是用大写字母,在我的例子中是两个字母。
-
我更新了帖子。它现在应该可以工作了。从
countrycode包中你可以得到两个字母的缩写,用于创建模式 -
如果是三个字母,不是
iso2c,而是iso3c列 -
完美!非常感谢!
标签: r dataframe substring subset extract