0

我平均存储在数据框中的坐标如下:

sapply(coords[N:M,],mean) # mean of coordinates N to M

我需要几组坐标的平均值,所以我做了这个循环,它找到坐标 1-4、5-11 和 20-30 的平均值。

N <- c(1, 5,20)
M <- c(4,11,30)
for ( i in 1:length(N) ) {
    sapply(coords[N(i):M(i),],mean)
}

如何矢量化该循环?我试图将矩阵传递给坐标(coords[NM,]),但这并没有给我想要的东西。

4

1 回答 1

2

为了简单和高效,您可以替换您sapply(x, mean)的。colMeans(x)

也许通过向量的想法,您更喜欢将多个变量(N 和 M)转换为单个向量 - 此处为数组 - 在可能且简单的情况下。

N <- data.frame(from=c(1,5,20), to=c(4,11,30))
apply(N, 1, function(x) colMeans(coords[x[1]:x[2],]))
于 2012-11-22T03:48:47.077 回答