我正在寻找一种有效的方法来将整数向量简化为摘要字符串,以便格式化它以适合表格单元格。
例如:
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"发布于 2012-02-08 11:33:42
您希望将元素分组为连续整数块。diff可以告诉您两个连续的元素是否在同一个块中,cumsum可以对块进行编号,tapply可以提取每个块的第一个和最后一个元素。
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=", ")https://stackoverflow.com/questions/9187429
复制相似问题