gpt4 book ai didi

r - 在数值向量的每对值之间添加序列

转载 作者:行者123 更新时间:2023-12-02 20:06:25 25 4
gpt4 key购买 nike

我有一个数字向量,我想用该向量的每两个值之间的三个附加数字的序列来扩展它。

考虑以下示例:

# Example vector
set.seed(123)
x <- round(runif(5, 0, 100))
x
### 29 79 41 88 94

我想在这五个值之间插入 3 个新数字。每对值之间的数字应该是长度为 3 的序列。

输出应如下所示:

# Desired output
c(seq(29, 79, length.out = 5),
seq(79, 41, length.out = 5)[- 1],
seq(41, 88, length.out = 5)[- 1],
seq(88, 94, length.out = 5)[- 1])
# 29 42 54 66 79 70 60 50 41 53 64 76 88 90 91 92 94

29和79之间添加的序列是42,54,66; 79和41之间添加的序列是70,60,50;等等...

我怎样才能以自动化的方式进行这样的操作?

最佳答案

一个选项是Map,通过删除last元素和first元素来获取相邻数字的序列,从列表中删除第一个元素列出取消列出输出并附加向量的第一个元素

c(x[1], unlist(lapply(Map(seq, x[-length(x)], x[-1],
MoreArgs = list(length.out = 5)), `[`, -1)))
#[1] 29.00 41.50 54.00 66.50 79.00 69.50 60.00 50.50 41.00
#[11] 52.75 64.50 76.25 88.00 89.50 91.00 92.50 94.00

关于r - 在数值向量的每对值之间添加序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54556315/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com