количество заменяемых элементов не кратно ошибке длины замены в R - PullRequest
0 голосов
/ 20 декабря 2018

У меня есть следующий цикл, который я пытаюсь запустить, но я получаю ошибку «количество заменяемых элементов не кратно длине замены».Кто-нибудь может мне помочь, почему это происходит?Кроме того, мне нужно как-то включить мой вектор углов в матрицу и не знаю как.Вот мой цикл на данный момент:

anglematrix <- numeric()
for(i in 1:length(fish2$X))
{
    a1 <- as.numeric(fish2[1, c(1,2)])
    a2 <- as.numeric(fish2[1 + 1, c(1,2)])
    a3 <- as.numeric(fish2[1 + 2, c(1,2)])

    angles <- Angle(a1, a2, a3, label=FALSE)
    anglematrix[i] <- matrix(NA, nrow=length(fish2$X)-2, ncol=1)
}

Вот структура моего набора данных с первыми шестью строкамиматрица.Спасибо за помощь!

1 Ответ

0 голосов
/ 20 декабря 2018

В исходном коде есть много неправильных вещей, но следующее работает и должно помочь вам понять, где вы ошиблись.Вероятно, самое важное, что нужно заметить, - это определить пустую матрицу перед циклом и заполнить ее значения внутри цикла, используя итератор i, чтобы указать, какое значение вы обновляете каждый раз.NB Я предполагаю, что вы используете Angle из library(LearnGeom), так как вы не указали источник этой функции:

Nangles = NROW(fish2) - 2
anglematrix = matrix(nr = Nangles, nc=1)

for(i in 1:Nangles) {
  a1 <- as.numeric(fish2[i, ])
  a2 <- as.numeric(fish2[i + 1, ])
  a3 <- as.numeric(fish2[i + 2, ])
  anglematrix[i] <- Angle(a1, a2, a3, label=FALSE)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...