【发布时间】:2020-10-25 23:49:41
【问题描述】:
我有一个数据框:
总共超过 300 万行和 1800 种(学名)
下面的代码创建了一个 0.5 度比例的空栅格..
library(raster)
ext <- extent(-180.0, 180, -90.0, 90.0)
gridsize <- 0.5
tempraster<- raster(ext, res=gridsize)
crs(tempraster) <- "+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0"`
#然后下面的代码一次用一个物种的 x y 数据填充该栅格,根据科学名称创建一个 ascii,其中物种存在时为 1,不存在时为 0。
selection<-animals
spp <- unique(animals$scientific_name)
result <- list()
for (i in 1:length(spp)) {
spi <- selection[selection$scientific_name == spp[i], c("lon", "lat")]
fname <- paste0(spp[i], ".asc")
result[[i]] <- rasterize(spi, tempraster, fun="count", filename=fname, background = 0, overwrite = TRUE)}
我想调整此代码,以便在生成的 ascii 中物种所在的位置不为 1,而是使用总列中的值。不幸的是,我是 for 循环和其他功能的初学者,所以我寻求任何帮助。
【问题讨论】:
标签: r dataframe for-loop ascii