Ошибка в сумме (x [i: (i + 50)], na.rm = TRUE): недопустимый тип (символ) аргумента - PullRequest
0 голосов
/ 25 апреля 2018

Я новичок в R и пытаюсь создать скрипт для вычисления скользящего среднего для некоторых данных.

Вот так выглядят мои данные:

Метка времени Accelerometer X Accelerometer Y Accelerometer Z
1 121219,757080078 -5,66180946541818 8,85684119781125 1,65407075345669 2 121239,288330078 -7,38255951126451 9,4117333531527 1,4410517346543

он имеет около 6000 строк, и мне нужно вычислить среднее значение акселерометра x, акселерометра Y и акселерометра Z каждые пятьдесят строк. Таким образом, из данных строк 1–50 я должен получить среднее значение для 3 переменных, затем от строк 51 до 100 и т. Д. До строки 6000.

Я пытался (для первой переменной):

library(reshape2)
library(reshape)
x <- deadlift$`Accelerometer X`
win.size <- 50
slide <- 50
results <- data.frame(index=numeric(),win.mean=numeric())
i<-1
j<-1
while (i<length(x)) {
  win.mean<-sum(x[i:(i+50)],na.rm = TRUE)/win.size
  results[j,]<-c(i,win.mean)
  i<-i+slide
  j<-j+1
}

но я получаю это сообщение:

Ошибка в сумме (x [i: (i + 50)], na.rm = TRUE): неверный тип (символ) аргумента

любая помощь?

Спасибо.

1 Ответ

0 голосов
/ 25 апреля 2018

Проблема решена.

проблема была в том, что объект x был создан как символ. Я преобразовал его в числовое с помощью as.numeric.

Это сработало.

С уважением,

...