我试图创建一个在每个时间间隔逐步增加一个序列的序列,但是无法设法做到这一点。
我希望我的结果看起来像这样:
vec <- c(1,3,6,10,15,21,28,36,45,55)
所以基本上,从1开始,每个索引都等于先例加上一步一步增加1的数字,如
[i]=[i-1]+seq(from=i, to=10, by=1)
但当然这不是正确的表示法。
你如何设置它以获得vec
中显示的内容?我想有一些循环是必要的,以使向量中的索引呈指数增长。
答案 0 :(得分:0)
这称为Triangular Number Sequence,格式为:
Tn = 1 + 2 + 3 + 4 + 5 + ... + n
可以使用R:
中的cumsum
函数创建
cumsum(1:10)
# [1] 1 3 6 10 15 21 28 36 45 55
或类似的东西,如果您更喜欢递归:
tri_num = function(n){
if(n <= 1){
return(1)
}else{
return(n+tri_num(n-1))
}
}
sapply(1:10, tri_num)