首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R-通过用序列的起始值和结束值替换序列值,生成一个总结整数向量的字符串

R-通过用序列的起始值和结束值替换序列值,生成一个总结整数向量的字符串
EN

Stack Overflow用户
提问于 2012-02-08 11:20:44
回答 1查看 199关注 0票数 6

我正在寻找一种有效的方法来将整数向量简化为摘要字符串,以便格式化它以适合表格单元格。

例如:

代码语言:javascript
复制
c(1, 2, 3, 4, 6, 8, 9, 10)

应该产生

代码语言:javascript
复制
"1-4, 6, 8-10"

这在打印矢量中的所有元素会很快使表不可读的情况下变得特别有用。

例如:

代码语言:javascript
复制
c(1:50, 53, 89:120)

应该产生

代码语言:javascript
复制
"1-50, 53, 89-120"
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-08 11:33:42

您希望将元素分组为连续整数块。diff可以告诉您两个连续的元素是否在同一个块中,cumsum可以对块进行编号,tapply可以提取每个块的第一个和最后一个元素。

代码语言:javascript
复制
x <- c(1:50, 53, 89:120)
y <- tapply( x, c(0,cumsum(diff(x) != 1)), range )
# Format the result
y <- sapply(y, function(u) 
  if(u[1]==u[2]) u[1] 
  else paste(u,collapse=":")
)
paste(y, collapse=", ")
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9187429

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档