r - 使用 R 循环中变量的 CHIRPS 数据
问题描述
该程序必须根据输入的详细信息下载 CHIRPS 数据,然后将每年的信息分配到变量“nc”中,并将其导出为“.csv”。但是,代码不起作用,我在 RStudio 中收到“R Session Failed Failed Error”消息。
### Importing libraries
library(parallel)
library(sp)
library(raster)
library(heavyRain)
### Working directory
setwd("D:/data-science_hydrology/g8/")
### Download CHIRPS monthly
data_CHIRPS <- getCHIRPS(region = "global",
format = "netcdf",
tres = "daily",
sres = 0.25,
begin = as.Date("1981-01-01"),
end = as.Date("2020-12-31"),
dsn = "data/chirps_daily",
overwrite = T,
cores = 1)
### THIS CRASH ME RSTUDIO
for (i in 1981:1982){
nc <- paste("nc", i, sep = "")
assign(nc, brick(paste("data/chirps_daily/chirps-v2.0.", i, ".days_p25.nc", sep ="")))
}
解决方案
首先,你不应该使用assign
; 而是将您创建的对象存储在列表中。你通常可以这样做
library(raster)
y <- 1981:1982
ff <- paste0("data/chirps_daily/chirps-v2.0.", y, ".days_p25.nc")
nc <- lapply(ff, brick)
names(nc) <- y
这可能会给出同样的错误,很可能是因为文件损坏。要找出是哪一个,请使用循环查看失败的位置。
nc <- list()
for (i in 1:length(ff)) {
print(ff[i]); flush.console()
nc[[i]] <- brick(ff[i])
}
然后重新下载坏文件并重试。
推荐阅读
- android - 无法运行程序“su”:错误=13,Android 应用程序中的权限被拒绝
- mailgun - Mailgun:创建域失败。超出帐户的域配额
- python - Pandas:基于条件的广泛数据框
- opencv - 使用 opencv2 和 numpy 使用其边界框旋转图像以 45 度角产生更差的框
- bash - 如何在 bash 文件中正确添加和删除符号链接
- javascript - 表元素断言
- android - com.app.MainActivity 不能转换为 com.facebook.react.ReactActivity
- sql - SQL 性能对约束或唯一索引中的多个列的影响
- vb.net - VB.NET 数据库不在 MS Access 和登录错误
- python - 解析 HTML——为什么这个文档必须用文本而不是标签来解析?