2016-03-04 63 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