gpt4 book ai didi

R:子集 N 维数组

转载 作者:行者123 更新时间:2023-12-01 01:02:59 27 4
gpt4 key购买 nike

考虑以下 3 维数组:

set.seed(123)
arr = array(sample(c(1:10)), dim=c(3,4,2))

这产生
> arr
, , 1

[,1] [,2] [,3] [,4]
[1,] 10 9 8 2
[2,] 5 1 4 10
[3,] 6 7 3 5

, , 2

[,1] [,2] [,3] [,4]
[1,] 6 7 3 5
[2,] 9 8 2 6
[3,] 1 4 10 9

我想对它进行子集化
arr[c(1,2), c(2,4), c(1)]

但问题是我不知道 (a) 哪些索引或 (b) 索引是哪个维度。

访问带有索引变量的 N 维数组的最佳方法是什么?
ll = list(c(1,2), c(2,4), c(1))

arr[ll] # doesn't work
arr[grid.expand(ll)] # doesn't work
# ..what else?

最佳答案

使用 do.call , 如:

do.call(`[`, c(list(arr), ll))

或更干净地,使用包装函数:
getArr <- function(...) 
`[`(arr, ...)

do.call(getArr, ll)

[,1] [,2]
[1,] 10 5
[2,] 7 3

关于R:子集 N 维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21443086/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com