假设我有一个类似
的数据框Group Score
Duck QuackDUC 0.343
Ten TopTEN 0.198
** -Men MaleMEN 0.350
y -Rural AreaRU 0.888
Maple TreeMAP 0.468
Man NavyMN 0.150
我想在每个Group
中提取单词,这是空格''之后的字符串,以及所有大写字母中2-3字符串之前的单词。也就是说,我希望结果是
Group Score
Quack 0.343
Top 0.198
Male 0.350
Area 0.888
Tree 0.468
Navy 0.150
如何提取这些词?
答案 0 :(得分:4)
我们可以使用sub
。我们匹配零个或多个字符后跟一个或多个字母后跟一个或多个空格(\\s+
),保留捕获组中的大写和后面的字母(即括号内(...)
),以及将其替换为捕获组的后向引用(\\1
)。
df1$Group <- sub(".*[A-Za-z]+\\s+([A-Z][a-z]+).*", "\\1", df1$Group)
df1$Group
#[1] "Quack" "Top" "Male" "Area" "Tree" "Navy"