我有以下 xts 对象:
> b1
DJI GSPC IXIC RUT
2007-01-03 12474.52 1416.6 2423.16 787.42
> c1
DJI.SMA50 GSPC.SMA50 IXIC.SMA50 RUT.SMA50
2007-01-03 12254.36 1398.677 2410.07 780.2584
> e1
DJI GSPC IXIC RUT DJI.SMA50 GSPC.SMA50 IXIC.SMA50 RUT.SMA50 DJI.SMA200 GSPC.SMA200 IXIC.SMA200
2007-01-03 12474.52 1416.6 2423.16 787.42 12254.36 1398.677 2410.07 780.2584 11531.81 1318.803 2258.984
RUT.SMA200
2007-01-03 738.7953
和以下功能:
fun_cols_change <- function(data) {
for (i in seq_along(colnames(b1))) {
x <- c(i)
y <- c(ncol(b1) + i)
z <- c(ncol(merge(b1, c1)) + i)
print(x)
print(y)
print(z)
}
}
当我在 e1 上执行函数时:
fun_cols_change(e1)
它导致:
[1] 1
[1] 5
[1] 9
[1] 2
[1] 6
[1] 10
[1] 3
[1] 7
[1] 11
[1] 4
[1] 8
[1] 12
如何将这些整数绑定到如下所示的向量中:
c(1,5,9,2,6,10,3,7,11,4,8,12)
我已经尝试了与lapply,do.call,merge,cbind的不同组合,但没有任何效果。
我相信有很多方法可以做到这一点。以下是在函数中构建向量的一种方法:
fun_cols_change <- function(data) {
my_vec = c()
for (i in seq_along(colnames(b1))) {
x <- c(i)
y <- c(ncol(b1) + i)
z <- c(ncol(merge(b1, c1)) + i)
print(x)
print(y)
print(z)
my_vec <- c(my_vec, x, y, z)
}
return(my_vec)
}
fun_cols_change(e1)
[1] 1 5 9 2 6 10 3 7 11 4 8 12