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

  • 本文关键字:一个 字符串 向量 整数 结束 替换 r
  • 更新时间 :
  • 英文 :


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

例如:

c(1, 2, 3, 4, 6, 8, 9, 10)

应该产生

"1-4, 6, 8-10"

在打印矢量中的所有元素会很快导致表不可读的情况下,这一点尤其有用。

例如

c(1:50, 53, 89:120)

应该产生

"1-50, 53, 89-120"

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

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=", ")

相关内容

最新更新