2017-01-26 9 views
-1

で文字ベクトルから要素を選択します。私は唯一の要素football shoes & football bootsを選択します。このcharsオブジェクトで私はこのようになります文字ベクトル持っstrsplit

chars <- c("Classics football boots", "Classics football shoes","football shoes", "new footbal shoes") 

を。私はdataframeにベクトルを戻す必要があるので、順序を維持する。

多くのことを試みたが、私はこれが最も近づいたと思われる場合:

for (i in grep("Classics",chars)){ 
    temp <- as.character(strsplit(chars[i], " ")[[1]][c(2,3)]) 
    temp2 <- as.character(na.omit(temp)) 
    chars[i] <- temp2 
} 

私はこのようなオブジェクトを取得できます:

c("football boots", "football shoes","football shoes", "new footbal shoes")

だから私だけ含む値をタッチします古典(または関心のある言葉)。

更新:

私は質問が明確でないことがわかりますので、私はもう少し詳しく説明しようとします:

私は4000のプラス値が含まれているベクトル。だから私はベクトルからいくつかの文字列(この例では "クラシック")に基づいて値を選択したいと思います。私がその言葉を見つけたら、必要な文字列の部分だけを選びたいと思っています。この例では、その値の2番目と3番目の要素を選択します。今、より明確になることを願っています。 stringrからgreplwordを使用して

+2

のルールは何ですか?それは明確ではない – Sotos

+1

"クラシックス"という言葉を削除したいだけですか? – Rodrigo

+0

@Sotos私が必要とするのは、どのルールに関係なく、個々の値から特定の要素を選択できることです。 –

答えて

1

ひとつのアイデア、

chars[grepl('Classics', chars)] <- stringr::word(chars[grepl('Classics', chars)], 2, 3) 
chars 
#[1] "football boots" "football shoes" "football shoes" "new footbal shoes" 
+0

これは私が感謝することができる何かです! –

0

はなぜ単にこのない:

gsub("Classics\\s+", "", chars) 
# [1] "football boots" "football shoes" "football shoes" "new footbal shoes" 
関連する問題