【问题标题】:r programming: multiple substrr 编程:多个 substr
【发布时间】:2012-07-11 21:19:13
【问题描述】:

我有一个想要子串的文本文档。我正在使用以下代码来子串:

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

【问题讨论】:

  • 你能提供一个最小的reproducible 例子吗?
  • 也许使用mapply? mapply(FUN = function(x, y) substr(text, x, x+y), x = start, y = end)(未测试)。

标签: r substring


【解决方案1】:

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

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

【讨论】:

  • 嘿,这行得通!你是怎么知道 substr 和 substring 的区别的?
  • 我刚刚浏览了substr和substring帮助页面中的例子。
  • 我这样做了,但我从来不明白。感谢您帮助我。
  • substr 取一个起始值和一个结束值,返回一个字符串。 substring 接受 n 起始值和相应的 n 结束值,返回 n 字符串,这样每个字符串都从 n[i] 开始并在 n[i] 结束,其中 i1:n 中。
  • @by0 这并非完全正确。对于substr(x, start, stop),您可以传递length(x) start 值和length(x) stop 值。请参阅文档中的示例
猜你喜欢
  • 2016-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多