我平均存储在数据框中的坐标如下:
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,]
),但这并没有给我我想要的东西。
答案 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],]))