2016-03-04 107 views
0

我有一個包含數據的46 MB csv文件。從本質上講,我只想選擇那些具有特殊字詞的行,比如「PRODUCT」。這個數據有600 000行。我用grep()來搜索字符串匹配。以下是我的數據的幾行。如何從行中提取單詞

head(test) 
                  Item.Description UQC Year 
1     PHARMACEUTICALS PRODUCTS.(MEDICINE) DOLEYKA SYRUP 100 ML NOS 2015 
2       Multani mati hesh100gm x 160 (AyurvedicProducts) PAC 2015 
3    Amla /Shikakai/ Aritha powder 100gm x 160 (Ayurvedic Products) PAC 2015 
4       Godrej h.dye blk 40ml x 36 (Ayurvedic Products) PAC 2015 
5 DR. COOLERS HERBAL LOZENGES.(2) DR. COOLERS HERBAL LOZENGES (MINT FLAVOUR) PAC 2015 
6       Eno lemon/ regular 100gm x 48 (AyurvedicProducts) PAC 2015 
    Identifier RITC.Code 
30049099 
30049011 
30049011 
30049011 
30049011 
30049011 

我已經使用test[grep("PRODUCT", rownames(test)), ]。它給了我一個錯誤。

+6

你有「產品」在'rownames'看起來它是在'Item.Description'列。即試試'[grep(「PRODUCT」,test $ Item.Description)]' – akrun

回答

0
  1. 打開CSV文件中使用MS-Excel的
  2. 進入菜單「數據」,然後點擊「過濾器」
  3. 在過濾器下拉菜單中選擇「文本過濾器」,然後選擇「包含」
  4. 然後鍵入單詞'產品'
  5. 列表包含單詞 '產品' 會被過濾
+3

我認爲OP會更喜歡R解決方案。 – zx8754

0

1)儘量grepl,它工作得更好。 2)大寫/小寫在這裏是重要的,你的文本中都有這兩個。

所以嘗試:

1)測試$ Item.Description < - tolower的(測試$ Item.Description) 2)產品< - 測試[grepl( 「產品」,測試$ Item.Description)] 。

是的,而不是rownames事項所需的列(ItemDescription)的使用過於

+0

但我想要所有的coloumns? – vishal