gpt4 book ai didi

r - 如何在不求助于循环的情况下生成以下序列?

转载 作者:行者123 更新时间:2023-12-04 16:30:09 25 4
gpt4 key购买 nike

time<-c(10,20)
d<-NULL
for ( i in seq(length(time)))
d<-c(d,seq(0,(time[i]-1)))
d

time<-c(3000,4000,2000,...,5000)而且时间长度是1000,程序很慢。
有没有更快的方法生成序列而不循环?

谢谢你的帮助。

最佳答案

试试 d <- unlist(lapply(time,function(i)seq.int(0,i-1)))
在旁注中,减慢整个过程的一件事是您在循环中增加向量的事实。

> time<-sample(seq(1000,10000,by=1000),1000,replace=T)

> system.time({
+ d<-NULL
+ for ( i in seq(length(time)))
+ d<-c(d,seq(0,(time[i]-1)))
+ }
+ )
user system elapsed
9.80 0.00 9.82

> system.time(d <- unlist(lapply(time,function(i)seq.int(0,i-1))))
user system elapsed
0.00 0.00 0.01

> system.time(unlist(mapply(seq, 0, time-1)))
user system elapsed
0.11 0.00 0.11

> system.time(sequence(time) - 1)
user system elapsed
0.15 0.00 0.16

编辑:也为其他解决方案添加了时间

关于r - 如何在不求助于循环的情况下生成以下序列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5433822/

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