r语言 - 如何将多个整数绑定到一个向量中



我有以下 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

最新更新