цикл по последовательности и задаче округления в R - PullRequest
0 голосов
/ 05 декабря 2018

Я хочу присвоить некоторому значению вектор, например:

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 голосов
/ 05 декабря 2018

Возникла проблема с вашей индексацией.Я не знаю, как объяснить, почему он не работает как написано, но вот модификация вашего кода, которая работает:

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

В общем, лучше избегать нескольких индексов в одном циклекак это может сбивать с толку и трудно диагностировать проблемы.

...