R:无法在两个日期之间选择xts值
获取edhec数据集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
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]