我有一个多维数组S:
> dim(S)
[1] 45 81 3 52
Run Code Online (Sandbox Code Playgroud)
我想在第三维中添加一列,以便:
> dim(S)
[1] 45 81 **4** 52
Run Code Online (Sandbox Code Playgroud)
并保留S中的所有当前数据.
Bro*_*ieG 13
这是一个潜在的基础R解决方案[<-.
S.new <- array(NA, dim=c(45, 81, 4, 52))
S.new[,,-4,] <- S # re-insert on all but the added extent
Run Code Online (Sandbox Code Playgroud)
基本上,您只需重新插入新数组,但可以指定旧数组中存在的维度.
我们可以用小玩具示例来测试它是否有效::
arr <- array(rep(1:4, each=4), dim=c(2, 2, 2, 2)) # toy array
arr.new <- array(NA, dim=c(2, 2, 3, 2)) # increased dimension 3
Run Code Online (Sandbox Code Playgroud)
然后一个简单的步骤:
arr.new[,,-3,] <- arr
Run Code Online (Sandbox Code Playgroud)
如果您加载到abind包中,您就可以访问
empty <- array(0, dim=c(45,81,52))
S <- abind(S,empty, along=3)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4181 次 |
| 最近记录: |