Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/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
R-通过时间和_R_Date_Subset_Xts - Fatal编程技术网

R-通过时间和

R-通过时间和,r,date,subset,xts,R,Date,Subset,Xts,目前,我有一个xts时间序列,称为Data,它包含一个Date,以及两个值列Value1和Value2,这两个列都是数字。我想从我的代码中得到一个数字作为输出,它是从Value2

目前,我有一个
xts
时间序列,称为
Data
,它包含一个
Date
,以及两个值列
Value1
Value2
,这两个列都是数字。我想从我的代码中得到一个数字作为输出,它是从
Value2
开始的时间段内
Value1
的平均值,并在此特定数据集中向前14个数据点,周

为了获得
Value2
的日期,我编写了以下代码

Data[which(Data$Value2 < mean(Data$Value2)),"Date"]

值2的平均值为12.57。因此,所选日期为2009-01-16和2009-02-06,因为此处的值2<平均值(值2)。然后,我想要2009-01-16到2009-01-30以及2009-02-06到2009-02-20期间的平均值1,以矩阵形式,开始日期后跟平均值(Value1)。

我不确定这是否正是您想要的。它将计算子集数据中
Value1
的平均值。然而,请注意,在未来不到14天的情况下,您不清楚要做什么。我包括两个版本的
my.func
定义,一个将在最终输出中生成
NA
s,另一个不会。你可以自己检查一下。另外,如果我正确理解了问题,那么就没有必要在这个任务中使用
xts
(因此我在示例中不使用它)

set.seed(99)

数据您想计算原始数据或子集合数据中
Value1
的平均值,其中所有
Value2
都小于
mean(Value2)
?在子集合数据中,XTS对象将日期/时间存储在
索引
属性中,并且没有
“日期”
列(除非你有意自己创建一个)。请提供一个。对不起,我的意思是索引属性。将立即添加示例
                Value1  Value2
1   2009-01-02  22.6500 17
2   2009-01-09  21.4700 56
3   2009-01-16  20.6100 -50
4   2009-01-23  19.6800 13
5   2009-01-30  19.2800 172
6   2009-02-06  20.1300 -120
7   2009-02-13  18.9900 17
set.seed(99)
Data <- data.frame(Date = seq(as.Date("2000-01-01"), as.Date("2000-03-30"), by = 1), 
               Value1 = rnorm(90), 
               Value2 = runif(90))

strt <- which(Data$Value2 < mean(Data$Value2))

subData <- Data[which(Data$Value2 < mean(Data$Value2)),]

my.func <- function(x) mean(subData$Value1[x:(x+14)])       #will produce 14 NA

#my.func <- function(x) mean(subData$Value1[x:(x+14)], na.rm = TRUE)   #wont produce NA

sapply(seq_along(strt), my.func)