如何在R语言中使用seq()编写指定数学公式生成目标差值向量
R语言练习题实现方案
已知前置代码如下:
set.seed(50) aVector <- sample(0:9999, 100, replace=T) bVector <- sample(0:9999, 100, replace=T)
需求说明
需要生成长度为99的向量,第k位的取值逻辑为 b[k+1] - a[k],对应公式形式为 (b₂ − a₁, b₃ − a₂, ... ,bₙ − aₙ₋₁ )
实现代码
核心通过seq()函数生成对应下标索引,分别取两个向量的对应位置元素直接相减即可:
# 生成b向量的下标:从第2位到最后1位,步长为1 b_index <- seq(from = 2, to = length(bVector), by = 1) # 生成a向量的下标:从第1位到倒数第2位,步长为1 a_index <- seq(from = 1, to = length(aVector) - 1, by = 1) # 计算目标向量 target_vector <- bVector[b_index] - aVector[a_index] # 可选:查看前6位结果验证逻辑 head(target_vector)
补充说明
如果没有强制要求使用seq()函数,也可以用更简洁的下标排除写法实现同样效果:
target_vector <- bVector[-1] - aVector[-length(aVector)]
内容的提问来源于stack exchange,提问作者binibiningtinamoran
相关产品推荐
相关产品推荐

