gpt4 book ai didi

r - 创建一系列等距的对

转载 作者:行者123 更新时间:2023-12-01 08:07:40 25 4
gpt4 key购买 nike

我想创建一个由 N 对实数组成的向量,其中每对由一个值 S 分隔,并且该对的两个元素由一个值 iS 分隔,可以这样写:

V=[(X,X+iS)_1, (X+S+iS,X+S+2*iS)_2, ...  ]

所以如果我们从 X=1 开始,S=1iS = .5 它应该返回:

V=[1.0,1.5,2.5,3.0,4.0,4.5]

我创建的这个函数完全符合我的要求:

myseq<-function(x,n,sep,isep){
res=c(x,x+isep)
for(i in 1:(n-1)){
prev=res[length(res)]
res=c(res,c(prev+sep,prev+sep+isep))
}
return(res)
}

与之前相同的例子:

> myseq(1,3,1,.5)                                                             
[1] 1.0 1.5 2.5 3.0 4.0 4.5

但我确信它可以用更简单、更“实用”的方式编写,但我想不通。如果你有什么想法?

最佳答案

这是一个使用seq的想法,

myseq <- function(x, n, sep, isep) {
v1 <- seq(x, n*2, sep)[c(rep(TRUE, 2), rep(FALSE, (isep/sep)-1))]
return(v1[1:(n*2)])
}

myseq(1,3, 0.5, 1)
#[1] 1.0 1.5 2.5 3.0 4.0 4.5

关于r - 创建一系列等距的对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41460118/

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