R:在x和y坐标中的所有附近点的组平均值

问题描述:

我有一些数据涉及X-Y坐标许多不同位置的成功/失败变量(两者的整数在0到80之间)。我想在任何特定位置对预期概率建模。我可以用plyr做到这一点很容易地:R:在x和y坐标中的所有附近点的组平均值

sucProp <- ddply(df, .(xcrd,ycrd), function(x) data.frame(obs=nrow(x),prop=mean(x$success))) 

这给了我成功的在每一个坐标的比例。由于一点的成功率应该与附近点的成功率相似,所以我想知道如何在X和Y方向上最好地取所有点的平均成功率。 (25,50)点将取(20-30,45-55)范围内所有观察值的平均值。

这样做的最好方法是什么?我可以在ddply中直接输入.variables,还是必须制定某种滚动索引?

+0

一个例子在这里真的很有用。我有想法,但我更愿意在我的头撞到坚实的数据墙之后犯我的错误或成功。 –

你将不得不做一个滚动的意思。这里有一个方法可以用sapply去做:

data.frame(
    x = rnorm(10, 40, 5), 
    y = rnorm(10, 50, 7), 
    success = rbinom(10, 1, .4)) -> ff 

newmean <- function(q) { 
    ff[q,"x"] + 5 -> a 
    ff[q,"x"] - 5 -> b 
    ff[q,"y"] + 5 -> c 
    ff[q,"y"] - 5 -> d 
    ff[ff$x < a & ff$x >b & ff$y < c & ff$y > d, "success"] -> k 
    mean(k) 
} 

sapply(X = 1:nrow(ff), newmean) -> ff$neighborhood_prob