拨开荷叶行,寻梦已然成。仙女莲花里,翩翩白鹭情。
IMG-LOGO
主页 文章列表 生成从-2到5且R中相差0.1的值矢量的最有效方法是什么?

生成从-2到5且R中相差0.1的值矢量的最有效方法是什么?

白鹭 - 2022-01-26 1972 0 0

生成从 -2 到 5 且 R 中相差 0.1 的值矢量的最有效方法是什么?

uj5u.com热心网友回复:

使用seq功能,

seq(-2, 5, 0.1)

uj5u.com热心网友回复:

seq.int()已知比 快得多seq()

seq.int(-2, 5, .1)

或者,我们可以尝试一个while回圈,

(5 - -2)/.1   1  ## calculate number of steps
# [1] 71

i <- 1; r <- s <- -2  ## define starting values
while (i < 71L) {
  s <- s   .1
  r[i   1] <- s
  i <- i   1
}
print(r)

甚至尝试整数。

ii <- 1L; ri <- si <- -20L  ## define starting values
while (ii < 71L) {
  si <- si   1L
  ri[ii   1L] <- si
  ii <- ii   1L
}
print(ri*.1)

查看基准测验(使用从 -2 到 1e5 的序列),while回圈比seq()(忽略定义起始值的时间!!)seq.int(),但仍然更快。

Unit: milliseconds
      expr      min       lq      mean    median        uq       max neval cld
       seq 8.857606 9.468344 11.579976 10.448676 12.225051  49.10238  1000   c
   seq.int 1.351898 1.495189  2.187937  1.720612  2.243119  25.16653  1000 a  
     While 3.777003 3.946604  4.797641  4.164015  4.365438 476.62461  1000  b 
 While.int 3.775510 3.930066  4.709157  4.155621  4.348228 410.80900  1000  b 
标签:

0 评论

发表评论

您的电子邮件地址不会被公开。 必填的字段已做标记 *