2017-02-27 5 views
1

要素に付けられた特殊文字に基づいてリストをサブセット化しようとしています。私は複数の結果を見出しましたが、特殊文字を扱う方法や特殊文字を含む要素を理解する方法が不足していると思います。最後に「**」を含むすべての要素で結果を得たいと思います。私は何か助けていただきありがとうございます。似たような質問が既にあった場合はお詫びします。リストをサブセット化するときに特殊文字を扱う際の一般的な答えも高く評価されます。あなたの時間をありがとう。特別な文字でリスト要素を選択する

例-コード:

x1 <- c('a**', 'b', 'c**') 
x2 <- c('d**', 'b', 'e**') 

y <- list(x1,x2) 

#Here are a couple of results i tried: 

grep('\\**', y, value =TRUE, ignore.case = TRUE) 

y[lapply(y, function(x) x[grep("[^\\**]", x),])] 

Filter(function(x) !any(grepl("[^\\**]", x)), y) 

y[y = "[^\\**]"] 
+3

'のgrep( "\\ * \\ *"、非公開に(Y)、値= TRUE)'とgrepを使用することができます。あなたはそれぞれをエスケープする必要があります(\\\)* –

+0

ありがとう!それは非常に速かった! – Simon

+2

また、grep( "\\ * {2} $"、unlist(y)、value = TRUE) 'は反復回数が増え、ドル記号が文字列の末尾にあることを確認した方が簡単です –

答えて

1

我々はfixed=TRUE

grep("**", unlist(y), value = TRUE, fixed = TRUE) 
#[1] "a**" "c**" "d**" "e**" 
+2

あなたが私の質問に答えた時、私の質問の文脈の中であなたが提供した解決策を理解することができません。もっと詳しく教えていただけますか? – Simon

+0

@Simon 'grep'出力を確認してください。あなたが欲しいものだと思う> – akrun

+0

ありがとう。しかし、grepの出力は完全には動作しますが、残念ながら要素を選択するための部分文字列はありません。 – Simon

関連する問題