遍历R中的序列和舍入问题

时间:2018-12-05 18:59:39

标签: r rounding substitution matrix-indexing

我想为vect分配一些值,例如:

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也都不正确。为什么会这样呢?谢谢!

1 个答案:

答案 0 :(得分:0)

索引编制有问题。我不知道如何解释为什么它不能按书面方式工作,但这是对您的代码的有效修改:

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

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