在 R 中迭代多维数组的一维

问题描述 投票:0回答:1

我有一个 3D 空间中的点数组

points
,实现为维度为
(numberOfPoints, 3)
的 2D 数组。我有一个区域的体素图,想找出每个体素中有多少个点。我想循环遍历数组,并为每个点增加其体素的数量。但我发现一个简单的 for 循环会遍历整个二维数组的各个元素。也就是说,这个:

for (point in points) {
  print(point)
}

打印很多数字(单独的坐标)。我希望它打印很多三元素向量。仅循环一维的正确语法是什么?

r for-loop multidimensional-array syntax
1个回答
0
投票

您可以循环维度。对于二维,我们有方便的

nrow()
ncol()
函数来获取维度。一般来说,您可以将
nrow(x)
替换为
dim(x)[1]

for(i in 1:nrow(points)) {
  print(points[i, ]) 
}

还有

apply
函数,用于在数组的边距上应用函数:

apply(points, MARGIN = 1, FUN = print)
© www.soinside.com 2019 - 2024. All rights reserved.