2016-12-07 3 views
1

Rの文字列のパターンを場所に割り当てることでパターンを検索しようとしています。私は次の形式のベクトルを持っています。基本的に1年間で人の位置の変更です。たとえば、最初のケースでは、1人がロンドンからニューヨーク、北京、クリーブランドに移動しています。文字列データから抽象パターンを作成するR

path <- c('Lon-NYC-Lon-Bei-Cle', 'Mos-NYC-Bei-Cle-San', 'Bei-Cle-Bei-NYC-San') 

私は一般的な抽象パターンを探しています。私はLon-NYC-Lon-Bei-Cle文字列のABACD、Mos-NYC-Bei-Cle-SanのABCDE、Bei-Cle-Bei-NYC-SanのABACDを提供する 'pattern'という変数を作成したい。

pattern <- c('A-B-A-C-D', 'A-B-C-D-E', 'A-B-A-C-D) 

この変数を作成する方法はありますか?

答えて

4

あなたは常に26の一意の値よりも少ないを持っている場合は、この

sapply(strsplit(path,"-"), function(x) 
    paste(LETTERS[factor(x, levels=unique(x))], collapse="-") 
) 
# [1] "A-B-A-C-D" "A-B-C-D-E" "A-B-A-C-D" 

ここで我々が重複する値を特定するの世話をするために異なる部分を見つけるためにstrsplit()を使用してfactor()のようなものを使用することができます。次に、因子の基礎となる数値を使用して、大文字のセットにインデックスを付けます。

+0

これは機能します。これは素晴らしいです! – user3570187

関連する問題