2015-04-04 43 views
0

這是一個非常基本的問題,我可能沒有看到的東西很明顯,但我現在仍堅持這一問題:搜索中的R列表中的一個整數的出現次數

在R,I生成的列表整數,通過sample()函數製作而成。然後想要找到確切的模式。

應該是顯而易見的,但grep執行以下操作:

1)

grep('03230', hugeListofNumbers) 
>integer(0) 

2)

pattern<-toString(03230) 
x<-toString(hugeListofNumbers) 

grep(pattern, x) 
>[1] 1 

3),並使用matchPatternBiostrings套餐:

matchPattern(pattern, x) 

    start end width 
[1] 5146 5158 13 [0, 3, 2, 3, 2] 
.... 

沒有結果幫助我找到模式的發生。雖然使用matchPattern最後一個看起來不錯,但它發現一些奇怪的13個字符長的字符串,不以任何方式5個字符長的模式相匹配...

什麼我沒有看到嗎?我如何才能在shell中執行正常的grep搜索?

編輯: 要生成我需要我用的屬性列表:

hugeListofNumbers<-sample(c(0,1,2,3), 10^5, replace=TRUE, prob=NULL) 
pattern<-sample(c(0,1,2,3), 5 , replace=TRUE, prob=NULL) 
+0

你可以添加一些代碼來生成數字的具體名單爲我們幫忙的嗎?像HugeListOfNumbers < - c(1,2,23452435,245)? – waternova 2015-04-04 22:40:37

+0

我認爲當一個R整數被一個正則表達式函數強制轉換爲一個字符向量時,將永遠不會有一個前導'0'數字。注意你的模式值是''「3230」',而不是「'03230」'我的近距離投票是因爲我認爲這是同構的印刷錯誤。 – 2015-04-04 23:07:25

+0

@BondedDust我知道模式值與實際模式不同。這不是一個印刷錯誤,但我正在尋找實際的模式,而不管它的數字意義。可以用字母執行相同的任務。我使用整數的原因是用於需要數字操作的以下步驟。這就是爲什麼我試圖將其轉換爲時間字符串進行搜索。 – hirschme 2015-04-05 09:49:49

回答

0

OK我找到了解決辦法,這是如市場預期,因爲我是負責監督一個非常基本的問題:sample()功能的R返回一個向量,所以在把它轉換爲一個字符串之前,我無法匹配任何長度超過1的模式。

相關問題