2016-08-05 16 views
2

データの最後から "/"を削除するにはどうしたらいいですか?のは、これが私のデータ各文字列の最後から特定の文字を削除します

#input 
ID page 
1 www.example.com/, ww.example.com/flight, www.example.com/flight/ 
2 www.example.com/, ww.example.com/flight 

私は彼らの最後の文字として持っていたし、私の出力は、我々は前後参照せずにgsubを使用することができる

#output 
ID page 
1 www.example.com, ww.example.com/flight, www.example.com/flight 
2 www.example.com, ww.example.com/flight 
+3

おそらく 'GSUB( "/?(=、| $)"、 ""、as.character(DFの$ページ)、perlの= TRUE)' –

+0

'urltools'パッケージも見てください。 URLを扱うための素晴らしい機能がいくつかあります – Sotos

答えて

2

ようになる人たちから「/」を削除したいと仮定しましょう。 /の後に文字列の末尾($)または,を削除し、それを,に置き換えます。それ以降のsubでは、最後に,が削除されます。

df1$page <- sub(",$", "", gsub("/($|,)", ",", df1$page)) 

df1$page 
#[1] "www.example.com, ww.example.com/flight, www.example.com/flight" 
#[2] "www.example.com, ww.example.com/flight"   

それとも別のオプション

gsub("/(?!\\b)", "", df1$page, perl = TRUE) 
#[1] "www.example.com, ww.example.com/flight, www.example.com/flight" 
#[2] "www.example.com, ww.example.com/flight"  
7

選択肢の一つである:/はコンマ,または文字列$のいずれかの端で、その場合は続いている場合は、このチェック

gsub("/(?=,|$)", "", as.character(df$page), perl = TRUE) 
#[1] "www.example.com, ww.example.com/flight, www.example.com/flight" 
#[2] "www.example.com, ww.example.com/flight" 

が見つかると、/""に置き換えられます。つまり、それは削除されます。これは見た目であるので、perl = TRUEを使用します。

その他のオプション(非効率的):

sapply(strsplit(as.character(df$page), ", ", fixed = TRUE), function(x) toString(sub("/$", "", x))) 
#[1] "www.example.com, ww.example.com/flight, www.example.com/flight" 
#[2] "www.example.com, ww.example.com/flight" 
関連する問題