2016-10-25 4 views
0

는이 전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 단어를 추출 할 같은 dataframe 있다고 가정 해 봅시다, 그리고 모두 대문자에서 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+)이 오는 0 개 이상의 문자와 일치하고 캡처 그룹에서 대문자와 문자 (예 : 괄호 (...))를 유지하고 캡쳐에 대한 역 참조로 바꿉니다 그룹 (\\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