【问题标题】:How to bind multiple integers into a vector如何将多个整数绑定到一个向量中
【发布时间】:2019-10-19 13:30:16
【问题描述】:

我有以下 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 的不同组合,但没有成功。

【问题讨论】:

    标签: r function vector integer


    【解决方案1】:

    我确信有很多方法可以实现这一点。这是在函数中构建向量的一种方法:

    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
    

    【讨论】:

      猜你喜欢
      • 2013-01-11
      • 1970-01-01
      • 2019-06-10
      • 2015-01-31
      • 1970-01-01
      • 2013-07-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多