【发布时间】:2022-01-25 14:48:23
【问题描述】:
我有 3 个大型 XTS 对象列表:“SMA”; “L”、“丸子”。快速看看它的外观:
> names(Marubozu)
[1] "TSLA" "AAPL" "NTES" "GOOGL" "ASML" "GOOG" "NFLX" "ADBE" "AMZN" "MSFT" "ADI" "FB"
> names(SMA)
[1] "TSLA" "AAPL" "NTES" "GOOGL" "ASML" "GOOG" "NFLX" "ADBE" "AMZN" "MSFT" "ADI" "FB"
> names(L)
[1] "TSLA" "AAPL" "NTES" "GOOGL" "ASML" "GOOG" "NFLX" "ADBE" "AMZN" "MSFT" "ADI" "FB"
> head(Marubozu$AAPL, n = 2)
WhiteMarubozu BlackMarubozu
2000-01-03 FALSE FALSE
2000-01-04 FALSE FALSE
> head(SMA$AAPL, n = 2)
UpTrend NoTrend DownTrend Trend
2000-01-03 NA NA NA NA
2000-01-04 NA NA NA NA
> head(L$AAPL, n =2)
AAPL.Open AAPL.High AAPL.Low AAPL.Close AAPL.Volume AAPL.Adjusted
2000-01-03 0.936384 1.004464 0.907924 0.999442 535796800 0.856887
2000-01-04 0.966518 0.987723 0.903460 0.915179 512377600 0.784643
我想在该列表中合并相应的 XTS 对象,以便创建一个大的 lig 列表。例如,New_List$AAPL 的输出将是:
AAPL.Open AAPL.High AAPL.Low AAPL.Close AAPL.Volume AAPL.Adjusted WhiteMarubozu BlackMarubozu UpTrend NoTrend DownTrend Trend
2000-01-03 0.936384 1.004464 0.907924 0.999442 535796800 0.856887 0 0 NA NA NA NA
2000-01-04 0.966518 0.987723 0.903460 0.915179 512377600 0.784643 0 0 NA NA NA NA
我试图创建一个列表列表并将其合并,但它不起作用。在这里你可以看到:
#That works for a single ticker AAPL
full <- merge.xts(L$AAPL, Marubozu$AAPL, SMA$AAPL)
#This doesn't work
out3 <- Map(function(x) {full$x <- merge.xts(lista[[1]]$x, lista[[2]]$x)}, lista)
我猜这只是一些简单的两行代码,但无法真正找到解决方案,感谢您的回复!
【问题讨论】:
-
这里的
lista是什么?我假设您的列表是Marubozu、SMA和L?在Map代码中,x是lista的元素。因此,lista[[1]]$x不起作用 -
如果你想合并'L'、'Marubozu'和'SMA'的对应元素,代码将是
Map(merge.xts, L, Marubozu, SMA)(基于适用于单个股票代码的代码-并假设所有代码的顺序相同)