如何从R中的向量创建一组范围?

时间:2014-11-10 13:44:04

标签: r cumsum

假设我有一个指定长度的数字向量。

x = c(3,5,4,10)

然后我运行cumsum来获得他们的范围。

cumsum(x)

3  8 12 22

我如何将每个配对以产生一对范围,从1开始。

优选作为字符向量:

c("1-3", "3-8", "8-12", "12-22")

2 个答案:

答案 0 :(得分:4)

您可以像这样使用paste

paste(c(1, cumsum(x))[-(length(x)+1)], cumsum(x), sep = "-")
# [1] "1-3"   "3-8"   "8-12"  "12-22"

答案 1 :(得分:1)

另一种选择是使用sprintf

 x1 <- c(1, cumsum(x))
 sprintf('%d-%d', x1[-length(x1)], x1[-1])
 #[1] "1-3"   "3-8"   "8-12"  "12-22"