1
行列の各要素の最近傍点(3 * 3移動ウィンドウ)の標準偏差を計算したいと思います。行列の各要素の最近傍の標準偏差を計算する効率的な方法
library(FNN)
df <- matrix(1:10000, nrow = 100, ncol = 100, byrow = TRUE)
df_ <- reshape2::melt(df)
df_index <- df_[, c(1,2)]
df_query <- df_index
neighbor_index <- knnx.index(df_index, df_query, k = 9, algorithm = 'kd_tree')
neighbor_coor<- apply(neighbor_index, 1, function(x) df_query[x, ])
neighbor_sd <- lapply(neighbor_coor, function(x) sd(df[x[, 1], x[, 2]]))
sd <- do.call(rbind, neighbor_sd)
しかし、速度が遅すぎる:私はそれを実装するためにRにいくつかのコードを書きました。あなたは私にスピードアップのアドバイスをくれますか?それを実装する他の方法はありますか?
私はdata.table'これを解決するための雷が 'あります確信しているが、あなたは'と考えられていますラスタパッケージ?多分それはいくつかの助けの可能性があります。 https://stackoverflow.com/questions/24068509/r-focal-raster-package-function-that-calculates-relative-to-center-cell-of-mov –
ありがとうございます!短いコードを書いてみませんか?私はそれを答えとして受け入れます。 –