2016-10-25 3 views
0

Скажет, у меня есть dataframe какИзвлечение подмножества строк в R?

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 

Как извлечь эти слова?

ответ

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" 
+1

Для данных, 'Sub (" * ([AZ] [AZ] +). *", "\\ 1", df1 $ Group)', кажется, также работает, хотя ваш ответ более полный – etienne

Смежные вопросы