如何用R语言的seq()函数生成等比序列5,25,125,625,3125?
R生成等比序列的解决方案
首先明确:seq()函数仅支持生成等差序列,它的by参数只能设置固定常量,无法通过引用前一项进行乘法运算,所以没法直接用seq()生成你要的等比序列。
你需要的序列是5的1至5次幂,这里提供几种简洁的实现方法:
方法一:指数运算直接生成
x <- 5^(1:5)运行后
x即为目标向量c(5,25,125,625,3125)。方法二:累积乘积函数
cumprod()x <- cumprod(rep(5, 5))rep(5,5)生成包含5个5的向量,cumprod()会依次计算累积乘积,最终得到所需的等比序列。方法三:封装自定义函数(适用于更通用的等比序列生成)
如果需要经常生成不同首项、公比、长度的等比序列,可以写个简单函数:geometric_seq <- function(start, ratio, len) { start * ratio^(0:(len-1)) } # 生成你要的序列 x <- geometric_seq(5, 5, 5)
内容的提问来源于stack exchange,提问作者kelik
相关产品推荐
相关产品推荐

