1

R ベクトル化を使用してこの for ループを削除するにはどうすればよいですか?

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]
4

1 に答える 1

2

出力が 2 列であり、インデックスを作成することにより、[,2]代わりに使用する必要があります。つまり、列の代わりに2 番目の要素のみを取得します。[2]matrix[2]"http://www.slate.fr/story/"2nd

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

の説明から?str_match

'string' をベクトル化。'pattern' は単一のパターン、つまり長さ 1 の文字ベクトルでなければなりません。

于 2014-11-18T09:38:41.173 に答える