Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.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:无法在两个日期之间选择xts值_R_Xts - Fatal编程技术网

R:无法在两个日期之间选择xts值

R:无法在两个日期之间选择xts值,r,xts,R,Xts,获取edhec数据集 library(PerformanceAnalytics) 这就是我想要得到的 到目前为止,我已经尝试: edhec['2000-12-31::2001-12-31',1] 最后一个是最令人费解的。它从测试开始到结束都会给我所有的值。你很接近,这是有效的: edhec[date_begin_test::date_end_test,1] edhec[date_begin_test/date_end_test,1] edhec[paste("'",date_begin_t

获取edhec数据集

library(PerformanceAnalytics)
这就是我想要得到的

到目前为止,我已经尝试:

edhec['2000-12-31::2001-12-31',1] 

最后一个是最令人费解的。它从测试开始到结束都会给我所有的值。

你很接近,这是有效的:

edhec[date_begin_test::date_end_test,1]
edhec[date_begin_test/date_end_test,1]
edhec[paste("'",date_begin_test,'::',date_end_test,"'",sep=''),1]
edhec[noquote(paste("'",date_begin_test,'::',date_end_test,"'",sep='')),1]
就我个人而言,我会使用:

edhec[paste(date_begin_test, '::', date_end_test, sep = ""), 1]
或者使用以下命令:

edhec[paste(date_begin_test, date_end_test, sep="::"), 1]

与之稍有不同的方法


我强烈反对这种做法。它比目前公认答案中的ISO8601样式的子集字符串慢约10倍。我不鼓励这种方法。它比当前接受答案中的ISO8601样式子集字符串慢约3倍。虽然这在每月数据的一次通话中可能不会有多大影响,但在更大数据的更多通话中,它确实会累积。这一点很好。所以我想这取决于你是追求速度,还是更清晰的编程风格。我倾向于选择lubridate符号,但这更多的是一个品味问题;更好的表现并不重要。如果您想要不同的样式,那么应该编写一个返回ISO8601样式字符串的函数[.xts将很好地执行。
edhec[paste(date_begin_test, date_end_test, sep="::"), 1]
x.subset=seq.Date(date_begin_test+1,date_end_test+1,by="month")-1
edhec[as.character(x.subset),1]
require(lubridate)
edhec[index(edhec) %within% (ymd("2000-12-31") %--% ymd("2001-12-31")), 1]