如何不使用c()函数生成指定等比序列?可借助seq()、rep()函数实现
R语言生成目标等比序列的方案
以下两种方案均不使用c()函数,分别用到了你提到的seq()和rep()函数:
方案1:使用seq()实现
目标序列是首项为10、公比为0.5的5项等比数列,可先生成0到4的整数序列作为幂次计算得到结果:
10 * 0.5 ** seq(from = 0, to = 4, by = 1)
运行后输出为:10.000 5.000 2.500 1.250 0.625,完全匹配需求。
方案2:使用rep()实现
结合Reduce()做累积运算即可,全程不需要调用c():
Reduce(`*`, x = rep(0.5, 4), init = 10, accumulate = TRUE)
这里rep(0.5,4)生成4个0.5的序列,Reduce()从初始值10开始,依次乘以每个0.5并保留每一步的计算结果,最终输出和目标完全一致。
内容的提问来源于stack exchange,提问作者user16014650
相关产品推荐
相关产品推荐

