2012-07-12 52 views
3

我有一個文本文件,我想substring。我使用以下代碼來進行子串處理:r編程:多個substr

substr(text, start,start+end) 

start有一個包含60個元素的向量。但是,上述代碼僅返回substr(text,1109,1109+199)的等效值。我如何得到它返回所有60個要素,即

  • substr(text,1109,1109+199)
  • substr(text,11590,11590+199)
  • ....

的樣本數據

start 

[1] 11009 11590 11972 15674 16274 16659 19866 20541 20963 24787 25376 
[12] 25746 29458 30011 30363 34086 34702 35087 38643 39095 39416 42626 
[23] 43188 43545 46731 47367 47757 51029 51673 52072 55444 56076 56470 
[34] 59794 60445 60851 64267 64877 65276 68659 69200 69547 72747 73303 
[45] 73657 76896 77648 78103 81541 82050 82391 85277 85848 86227 89128 
[56] 89656 90010 92830 93329 93656 

end 

[1] 199 199 199 201 201 201 218 218 218 186 186 186 177 177 177 192 192 
[18] 192 160 160 160 178 178 178 194 194 194 200 200 200 197 197 197 205 
[35] 205 205 200 200 200 174 174 174 178 178 178 235 235 235 171 171 171 
[52] 190 190 190 179 179 179 169 169 169 
+1

你能提供一個最小的[reproducible](例如http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)嗎? – johannes 2012-07-12 07:05:13

+0

也許使用mapply? '(mapply(FUN = function(x,y)substr(text,x,x + y),x = start,y = end)'(未測試)。 – 2012-07-12 07:22:35

回答

5

substr代替你可以使用子字符串:

substring(your_text,first=start,last=(start+end)) 
+0

嘿這個作品!你怎麼知道substr和substring之間的區別? – Paolo 2012-07-12 07:29:45

+0

我剛剛瀏覽了substr和substring的幫助頁面中的示例。 – Pop 2012-07-12 07:35:22

+0

我這樣做,但我從來不理解它。謝謝你的協助。 – Paolo 2012-07-12 07:43:08