R 充分利用性能分析数据
我有一个由返回时间序列组成的数据帧,它有以下列R 充分利用性能分析数据,r,sapply,performanceanalytics,R,Sapply,Performanceanalytics,我有一个由返回时间序列组成的数据帧,它有以下列 date x1 x3 x8 x11 x、 R是由返回组成的数据帧 我想使用性能分析工具中的findDrawdowns方法,并将其应用于每个时间序列。我想将结果存储在一个列表中,这样我就可以访问findDrawdowns的所有输出 sapply(x.R, sortDrawdowns(findDrawdowns)) 上面的命令生成下面的命令。不确定如何访问这些值。。非常感谢您的帮助 x1 x3
date x1 x3 x8 x11
x、 R是由返回组成的数据帧
我想使用性能分析工具中的findDrawdowns方法,并将其应用于每个时间序列。我想将结果存储在一个列表中,这样我就可以访问findDrawdowns的所有输出
sapply(x.R, sortDrawdowns(findDrawdowns))
上面的命令生成下面的命令。不确定如何访问这些值。。非常感谢您的帮助
x1 x3 x8 x11
return Numeric,47 Numeric,47 Numeric,47 Numeric,49
from Numeric,47 Numeric,47 Numeric,47 Numeric,49
trough Numeric,47 Numeric,47 Numeric,47 Numeric,49
to Numeric,47 Numeric,47 Numeric,47 Numeric,49
length Numeric,47 Numeric,47 Numeric,47 Numeric,49
peaktotrough Numeric,47 Numeric,47 Numeric,47 Numeric,49
recovery Numeric,47 Numeric,47 Numeric,47 Numeric,49
您需要一个嵌套的SAPPY,因为sortDrawdowns将返回无法以二维显示的所有绘图,即上面表格中的每个单元格都包含所有绘图。以下是一个包含合成数据的解决方案:
# Make up data
len=29
data <- data.frame(
x1=rnorm(len, 0, .05),
x3=rnorm(len, 0, .05),
x8=rnorm(len, 0, .05),
x11=rnorm(len, 0, .05)
)
rownames(data) <- as.character(as.Date("2013-12-01") - (len:1))
# Get worst drawdowns
sapply(
names(data), # for each entry in df
function(x) {
sapply( # cycle through each item in a drawDown object
sortDrawdowns(findDrawdowns(data[, x, drop=F])), # get drawdows sorted
`[[`, 1 # extract 1st item
)
}
)
# x1 x3 x8 x11
# return -0.1887651 -0.3425831 -0.1592202 -0.2928802
# from 17.0000000 5.0000000 16.0000000 1.0000000
# trough 20.0000000 24.0000000 27.0000000 16.0000000
# to 25.0000000 30.0000000 30.0000000 30.0000000
# length 9.0000000 26.0000000 15.0000000 30.0000000
# peaktotrough 4.0000000 20.0000000 12.0000000 16.0000000
# recovery 5.0000000 6.0000000 3.0000000 14.0000000
尝试在sapply…、simplify=TRUE中设置simplify=TRUE,或者直接使用lappy获取列表,或者您可能希望查看plyr包以获得合适的格式。也要努力通过提问来改进你的问题