2016-02-17 30 views
-2

我已經下載了一個數據庫,我想清除它。我想選擇一個不必要的句子的一部分,刪除它,然後刪除重複。刪除部分句子

例如:

我有這樣的:

10 choco barres 
100% pur jus Ananas 
100% Pur jus d'orange avec pulpe 
100% Pur jus d'orange avec pulpe 

而且我想這樣的:

choco barres 
pur jus Ananas 
Pur jus d'orange avec pulpe 

有人能幫助我嗎?

+3

SO不是代碼編寫服務或算法服務! –

+0

你想實現的實際規則是什麼?你的一個例子讓我相信你想要刪除所有的數字和百分號,但它只是整數嗎? 93.2應該被刪除?那麼像「> 10」這樣的其他標點符號呢? – brittenb

+0

對不起,我認爲SO是一個幫助人們的論壇。 我想用gsub找到一種方法,刪除所有數字(100%,10,(35)...),並保留文章的名稱。 通常,文章的名稱和編號之間有一個空格。所以我想在這個空間之前放鬆一切。 非常感謝您的幫助! – florianb

回答

0

這取決於你想要移除的東西究竟是什麼樣子,但是你在gsub的正確軌道上。如果你的字符串是s,所有你需要的是像

gsub('[0-9% ]{2,}', ' ', s) 

計算結果爲

[1] " choco barres pur jus Ananas Pur jus d'orange avec pulpe Pur jus d'orange avec pulpe" 

其中[ ... ]定義了一組字符的尋找和{2,}指定找2個或更多的人。

這裏有很多的選擇,這取決於你需要什麼。特別是空間可以被不同地處理。

爲了擺脫重複的爲好,它更容易分割字符串,搜索唯一的字符串,並將其粘貼到一起:

paste(unique(strsplit(s, '[0-9% ]{2,}')[[1]]), collapse = ' ') 

返回

[1] " choco barres pur jus Ananas Pur jus d'orange avec pulpe" 

注意,這是這取決於在每個字符串片段的開始處有一個數字字符串,因此不如上面的方法靈活。

檢出the resources on the [regex] tag info page,這應該可以幫助您找出必要的。