Spatial*DataFrame
(* = ポイント、ライン、ポリゴン、ピクセル、グリッドなど) のデータをどうにかして簡単に操作することは可能ですか? 特に、値を割り当てて操作するのが困難です。
require(gstat)
data(meuse)
coordinates(meuse) = ~x+y
data(meuse.grid)
gridded(meuse.grid) = ~x+y
######## 1) assigning value
meuse[1,'zinc'] <- NA
# Error in meuse[1, "zinc"] <- NA : object of type 'S4' is not subsettable
as.data.frame(meuse)[1,'zinc'] <- NA
# Error in as.data.frame(meuse)[1, "zinc"] <- NA :
# could not find function "as.data.frame<-"
######## 2) operating with values
meuse[, 'zinc'] + 2
# Error in meuse[, "zinc"] + 2 : non-numeric argument to binary operator
どちらの場合も、かなり醜い回避策を見つけました。
# ad 1)
meuse2 <- as.data.frame(meuse)
meuse2[1, 'zinc'] <- NA
meuse2 <- SpatialPointsDataFrame(SpatialPoints(meuse), meuse2)
# ad 2)
as.data.frame(meuse)[, 'zinc'] + 2
しかし、これらは単なる初心者の試みであり、あまりにも醜くて複雑です.Rでははるかに簡単に違いありません!