2015-09-25 36 views
0

我有一些數據涉及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

一個例子在這裏真的很有用。我有想法,但我更願意在我的頭撞到堅實的數據牆之後犯我的錯誤或成功。 –

回答

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