首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R- na.kalman包中imputeTS函数的奇异行为

R- na.kalman包中imputeTS函数的奇异行为
EN

Stack Overflow用户
提问于 2017-04-18 17:07:15
回答 1查看 882关注 0票数 1

我正在试验imputeTS包中的函数。该软件包提供了几个函数来计算单变量时间序列数据中的缺失值。我测试了它们,它们都很棒,除了na_kalman函数。此函数更改原始数字向量。下面是一个例子。

代码语言:javascript
复制
# Load packages
library(imputeTS)

# Set seeds
set.seed(123)

# Generate 10 random number
dat <- rnorm(10)

# Replace the first 10 numbers to be NA
dat[1:5] <- NA

# Check the numbers in dat
dat
 [1]         NA         NA         NA         NA         NA  1.7150650  0.4609162 -1.2650612 -0.6868529
[10] -0.4456620

正如您所看到的,我用10个数字创建了一个向量,而前5个是NA

代码语言:javascript
复制
# Apply the na_kalman function
dat2 <- na_kalman(dat)

# Check the numbers in dat2
dat2
[1]  1.7150650  1.7150650  1.7150650  1.7150650  1.7150650  1.7150650  0.4609162 -1.2650612 -0.6868529
[10] -0.4456620

# Check the numbers in dat again
dat
     [1]  1.7150650  1.7150650  1.7150650  1.7150650  1.7150650  1.7150650  0.4609162 -1.2650612 -0.6868529
[10] -0.4456620

dat2似乎显示了na_kalman函数,成功地计算了NA。然而,最初的载体dat也被改变了。这是我想避免的行为。我想知道是否有办法要求na_kalman不要改变原来的向量。

Note

  1. 当我将向量长度更改为大数字(如rnorm(1000) )时,我注意到dat中的所有缺失值都将更改为原始数据中的第一个不丢失的值。似乎dat不仅仅是na_kalman函数之后的dat2的一个副本。
  2. 我还测试了来自imputeTS包的其他函数,如na_interpolationna_locfna_mean。他们没有这种行为。在运行这些函数之后,dat仍然是相同的向量。
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-18 22:46:45

这里是imputeTS包的作者。谢谢你的电子邮件。

这确实没有feature...it是一个相当小的错误。我直接修好了这个窃听器。

更新:新版本修复也在CRAN现在。修正了3.0版。如果您遇到这个错误,只需更新imputeTS包即可。

不幸的是,我在CRAN上上传了一个新的包版本,就在你给我写信之前几个小时。否则,它将已经包含在2.1更新中。我将在周末前用修复程序进行更新。

如果同时需要一个固定版本,则可以直接从github安装新版本:

代码语言:javascript
复制
library(devtools)
install_github("SteffenMoritz/imputeTS")

对于那些感兴趣的人来说,问题是:

这是我通过Rcpp调用的C++代码中的一个问题。我忘了做一个物体的深拷贝。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43478244

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档