Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
TTR runSD返回所有NA_R_Ttr - Fatal编程技术网

TTR runSD返回所有NA

TTR runSD返回所有NA,r,ttr,R,Ttr,我认为这来自R/包更新,但现在当我试图计算包含NA的timeseries的运行标准偏差时,我得到的是NA(当前是R版本4.0.3和TTR_0.24.2) 如何获得: TTR::runSD(x = c(NA, 1:10), n = 1, cumulative = TRUE) 要排除/忽略NA而不是返回,请执行以下操作: [1] NA NA NA NA NA NA NA NA NA NA NA 更像是: [1] NA NaN 0.7071068 1.0000000 1.2909944 1.5

我认为这来自R/包更新,但现在当我试图计算包含NA的timeseries的运行标准偏差时,我得到的是NA(当前是R版本4.0.3和TTR_0.24.2)

如何获得:

TTR::runSD(x = c(NA, 1:10), n = 1, cumulative = TRUE)
要排除/忽略NA而不是返回,请执行以下操作:

 [1] NA NA NA NA NA NA NA NA NA NA NA
更像是:

 [1] NA NaN 0.7071068 1.0000000 1.2909944 1.5811388 1.8708287 2.1602469 2.4494897 2.7386128 3.0276504
编辑 理想情况下,返回在R版本3.5.2和TTR_0.23-4下所做的:

> TTR::runSD(x = c(NA, 1:10), n = 1, cumulative = TRUE)
 [1]       NA       NA 1.000000 1.172604 1.414214 1.677051 1.949359 2.226732 2.507133 2.789489 3.073181

一个选项是创建一个函数并仅更新那些具有非NA元素的元素

f1 <- function(vec) {
      i1 <- !is.na(vec)
      vec[i1] <- TTR::runSD(x = vec[i1], n = 1, cumulative = TRUE)
      vec
  }

f1(c(NA, 1:10))
#[1]        NA       NaN 0.7071068 1.0000000 1.2909944 1.5811388 1.8708287 2.1602469 2.4494897 2.7386128 3.0276504

f1它没有
na.rm
。您可以使用'TTR::runSD(x=na.omit(c(na,1:10)),n=1,cumulative=TRUE)`hmm这并不理想,因为
na.omit将改变输入/输出的大小非常好的解决方法,谢谢!将在接受之前等待一段时间。伸出手来看看是否存在函数内解决方案