gpt4 book ai didi

arrays - 了解 R 中的数组索引

转载 作者:行者123 更新时间:2023-12-01 10:13:03 25 4
gpt4 key购买 nike

R documentation on arrays状态

The values in the data vector give the values in the array in the same order as they would occur in FORTRAN, that is "column major order," with the first subscript moving fastest and the last subscript slowest.

然后它会给出 a clarifying example通过将数据加载到二维数组中来实现这一点:

 > x <- array(1:20, dim=c(4,5))   # Generate a 4 by 5 array.
> x
[,1] [,2] [,3] [,4] [,5]
[1,] 1 5 9 13 17
[2,] 2 6 10 14 18
[3,] 3 7 11 15 19
[4,] 4 8 12 16 20

根据使用其他语言的经验,我认为 x[1, 2] 而不是 x[2, 1] 应该是 2,但这很容易调整我的想法。然而,就在我执行我的心智模型转换时,下一个示例将其粉碎:

 > i <- array(c(1:3,3:1), dim=c(3,2))
> i # i is a 3 by 2 index array.
[,1] [,2]
[1,] 1 3
[2,] 2 2
[3,] 3 1
> x[i] # Extract those elements
[1] 9 6 3

所以,我可以看到这里发生的情况是我们提取了元素 x[1, 3]x[2,2]x[ 3, 1]。好的,但这不完全违背了上述“列主要顺序”的说法吗?

据我了解,i 应该是 2 x 3 数组,而 R 应该将 x[i] 解释为x[i[1, 1], i[2, 1]], x[i[1, 2], i[2, 2]], ...。然而,我们观察到的是,相反,R 做了 x[i[1, 1], i[1, 2]], x[i[2, 1], i[2, 2]], 。 ..

这是 R 中的根本不一致,还是我完全误解了文档?

最佳答案

“列主序”仅表示内部矩阵是逐列排序的向量;看到了

x[1:20]

1, 2, 3, ..., 19, 20。维度在科学中像往常一样排序——首先是行,然后是列,然后是深度,然后是超深度......第三个例子很棘手:如果 i 的列数与 x 的维度相同,则将其解释为矢量化选择。如果不是,则 ix 都适用于按列向量,并且适用简单的向量索引规则...例如 x[t(i)]1:20[c(1,3,2,2,3,1)].

关于arrays - 了解 R 中的数组索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3755434/

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