假设我有一个指定长度的数字向量。
x = c(3,5,4,10)
然后我运行cumsum来获得他们的范围。
cumsum(x)
3 8 12 22
我如何将每个配对以产生一对范围,从1开始。
优选作为字符向量:
c("1-3", "3-8", "8-12", "12-22")
答案 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"