2014-11-18 3 views
0

R 벡터화를 사용하여 for 루프를 제거하려면 어떻게해야합니까?for 루프를 제거하기 위해 stringr str_match를 벡터화

library(stringr) 
url <- c("http://www.slate.fr/france/87869/mehdi-nemmouche-bruxelles", "http://www.slate.fr/story/87347/turquie-opposition-geek", "http://www.slate.fr/grand-format/paysages-debarquement-photos-1944-aujourdhui") 

for (i in 1:length(url)) { 
a[i]<-str_match(url[i], "http://.*slate.fr/(.*?)/")[2] 
} 

이 작동하지 않습니다

a<-str_match(url, "http://.*slate.fr/(.*?)/")[2] 

답변

1

을 당신은 [2] 대신 [,2]을 사용해야 출력이 2 열 matrix 및 인덱싱 [2]에 의해, 대신 "http://www.slate.fr/story/" 즉 만 2 요소를지고 있기 때문에 2nd 칼럼의 '. '문자열'을 통해 ?str_match

벡터화의 설명에서

str_match(url, "http://.*slate.fr/(.*?)/")[,2] 
#[1] "france"  "story"  "grand-format" 

. '패턴'은 단일 패턴, 즉 길이가 1 인 문자 벡터 인 이어야합니다.

관련 문제