2017-05-01 37 views
-1

我有一串字母:錯誤:另一個特定字符串中查找字符串[R]

M <- "ABHJKFRTUIOKOPJNHGBQETYUODIOFGHJSDFKHLKJIOEQBALKFJPA" 

而且我想看看它是否包含一個小的字符串:

S <- "FGHJ" 

我試着在R上的下面的代碼:

found <- ifelse(grepl(S, M), "Found","Not Found") 

,但我得到了以下錯誤:

In grepl(S, M) : 
    argument 'pattern' has length > 1 and only the first element will be used 

兩者都是S和M是類字符。

在說,如果找到字符串,是否有辦法確定S在S中開始和停止的位置並記錄兩個位置?

我敢肯定,這是顯而易見的....

+0

謝謝@jogo - 已編輯。 – joeblow

+1

你沒有給我們你'S'的實際價值:你的'S'變量有多個項目。試試'length(S)',你會看到。以上三行不會產生錯誤。 –

回答

0
> M = "ABHJKFRTUIOKOPJNHGBQETYUODIOFGHJSDFKHLKJIOEQBALKFJPA" 
> S = "FGHJ" 
> grepl(S, M) 
[1] TRUE 
> library(stringr) 
> str_locate(M, S) 
    start end 
[1,] 29 32 

這是否幫助?你的例子是不可重複的...

+0

道歉。但我仍然遇到同樣的錯誤。 – joeblow

+0

更新我的評論。它在單獨使用grepl(S,M)時確實有效,但是當試圖強制它被命名爲「found」時,它給了我同樣的錯誤 – joeblow

+0

@joeblow - 適用於我。上面我贊同大衛 - 你沒有向我們展示你的變量的實際值。 – Harlan

相關問題