如何对索引进行矢量化?

时间:2012-11-22 03:37:46

标签: r

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

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,]),但这并没有给我我想要的东西。

1 个答案:

答案 0 :(得分: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],]))