首页 > 解决方案 > 遍历R中的序列和舍入问题

问题描述

我想为一个向量分配一些值,例如:

a = rep(0, 101)
for(i in seq(0, 1, 0.01)){
    u <- 100 * i + 1
    a[u] <- u
}
a
plot(a)

输出是

> a
  [1]   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  30   0  31  32  33  34
 [35]  35  36  37  38  39  40  41  42  43  44  45  46  47  48  49  50  51  52  53  54  55  56  57  59   0  60  61  62  63  64  65  66  67  68
 [69]  69  70  71  72  73  74  75  76  77  78  79  80  81  82  83  84  85  86  87  88  89  90  91  92  93  94  95  96  97  98  99 100 101

29号和59号元素都有问题。它们应该是 29 和 59,但结果是 0,即默认值。而之前的值,第 28 和第 58,也是不正确的。为什么会这样?谢谢!

标签: rroundingsubstitutionmatrix-indexing

解决方案


你的索引有问题。我不知道如何解释为什么它不能像所写的那样工作,但这里是对你的代码的修改:

a = rep(0, 101)
s<-seq(0, 1, 0.01)
for(i in 1:101){
  a[i] <- 100 * s[i] + 1 
}
a
plot(a)

一般来说,最好避免在同一个循环中使用多个索引,因为这可能会造成混淆并且难以诊断问题。


推荐阅读