我花了一段时间试图了解为什么它不起作用,但是我无法弄清楚。 我正在使用R中的sp包,我想将数据帧转换为使用坐标函数分配坐标的SpatialPointsDataFrame。数据帧应动态调用。
以“ meuse”数据为例:
> data(meuse)
> coordinates(meuse) <- ~x+y
> meuse
class : SpatialPointsDataFrame
features : 155
extent : 178605, 181390, 329714, 333611 (xmin, xmax, ymin, ymax)
coord. ref. : NA
variables : 12
names : cadmium, copper, lead, zinc, elev, dist, om, ffreq, soil, lime, landuse, dist.m
min values : 0.2, 14, 37, 113, 5.180, 0.00000000, 1.0, 1, 1, 0, Aa, 10
max values : 18.1, 128, 654, 1839, 10.520, 0.88038900, 17.0, 3, 3, 1, W, 1000
这很好。但是,尝试动态调用“ meuse”失败:
> df <- "meuse"
> data(list = df)
> coordinates(get(df)) <- ~x+y
Error in coordinates(get(df)) <- ~x + y : could not find function "get<-"
为什么这行不通?为什么要尝试找到“ get <-”函数?
到目前为止,我的解决方法是:
assign(df, `coordinates<-`(get(df), ~x+y))