У меня есть список из 69 zoo
объектов, я использовал na.approx
, чтобы заполнить несколько пробелов, но так как мои временные ряды имеют дело с подсчетами, мне нужно, чтобы вмененные значения были целыми числами.zoo - Round coredata to integer
Этот код
list_int <- lapply(list_dec, round(coredata(list_dec), digits=0))
дает мне следующее сообщение об ошибке
Error in round(coredata(list_dec), digits=0) :
non-numeric argument to mathematical function
Я думал, что это была проблема с применением функции к списку вместо вектора, а функция
coredata(list_dec)
правильно показывает все 69 временных рядов (без необходимости lapply
).
Почему же round
не применяется к coredata
?
EDITED
Как предложено здесь минимальный набор данных
A1 <- runif(20, min=-5, max=13)
A2 <- runif(20, min=-1, max=5)
A3 <- runif(20, min=-3, max=10)
A4 <- runif(20, min=0, max=2)
ls <- list(A1, A2, A3, A4)
list_dec <- lapply(ls, as.zoo)
Вы уверены, что вы имеете дело с числами, а не строками, которые выглядят как цифры? – Cleb
Да, перед использованием 'na.approx' они были целыми числами, но функция принудила их к числовым – Quechua
Не могли бы вы разместить минимальный пример вашего набора данных? – Cleb