我知道有很多关于在R中重命名列的类似问题,但我仍然没有找到一种优雅的方法来完成这个简单的任务,而在Python中可以轻松地完成。
这里有一个简单的函数将GIS数据框转换为空间点。但是首先我想将坐标列重命名为“lon”和“lat”。有些数据将它们标记为“X”和“Y”,而其他数据可能称之为“long”和“lat”。因此,我希望用户指定“lon”和“lat”的列名。我正在使用dplyr
。但是以下内容将无法工作。
library("magrittr")
library("tidyverse")
ToSpatialPoint <- function(data, lon_col="long",lat_col="lati"){
data %<>% rename(lon=lon_col,lat=lat_col) %<>% distinct(lon,lat) %<>% filter(!is.na(lon),!is.na(lat))
processed_pts <- SpatialPoints(coords=cbind(lon=data$lon,lat=data$lat), proj4string = CRS("+init=epsg:4326"))
return(processed_pts)
}
我收到了这个错误提示:
Error: `lon_col`, `lat_col` contains unknown variables
magrittr
,否则你需要加载dplyr
来使用管道。引用命名空间不允许使用管道。另外,在你的示例中调用了一个plyr
函数,并在问题中标记了dplyr
,你到底想要使用哪个? - undefined%>%
代替 - undefinedplyr
和dplyr
中的rename
函数对我来说都不起作用。我已经添加了plyr
标签。 - undefined