Слияние большого количества столбцов, ошибка записи файла в R

В настоящее время я пытаюсь извлечь данные об осадках из Мексики из базы данных CHIRPS. Цель состоит в том, чтобы получить исчерпывающую базу данных месячных осадков за период в 15 лет. Это включает в себя объединение большого количества столбцов после извлечения данных из.tif-файлов, которые содержат информацию о погодных условиях за определенные месяцы.
CVE_ENT и CVE_MUN - две переменные, которые позже помогают мне идентифицировать отдельные муниципалитеты.

Выполнение моего кода в R и просмотр итогового фрейма данных все выглядит хорошо. Однако, как только я пытаюсь извлечь его в файл.dta или.csv, я получаю следующее сообщение об ошибке: fwrite (vextractall, file = "rainfall55.csv") Ошибка в fwrite(vextractall, file = "rainfall55.csv"): длина столбца 4 (1) не совпадает с длиной столбца 1 (2456)

Ошибка возникает для нескольких других сценариев, например, при использовании write.dta.

Кто-нибудь, кто знает, что я пропускаю? Заранее большое спасибо.

#Data get methods#
tif.raster1 <- raster('chirps-v2.0.1999.01.tif')
crs.LL <- "+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84" 
tif.raster1 <- projectRaster(tif.raster1, crs = crs.LL)
mexico2shp <- readOGR(dsn='GIS Mexican Municipalities', layer='Mexican      Municipalities')
tif.raster1 <- crop(tif.raster1, extent(mexico2shp))
vras.tif1 <- velox(tif.raster1)
iters <- nrow(mexico2shp)
#mapping function#
vextractall <- vras.tif1$extract(mexico2shp, fun=mean)
mexicomm <- as.data.frame(mexico2shp)
vextractall <- as.data.frame(vextractall)
iters <- nrow(mexico2shp)
x <- foreach(a=1:iters) %do% {
if(is.na(vextractall[a,1])) {
 ext <- raster::extract(tif.raster1, mexico2shp[a,], fun=mean)
 vextractall[a,1] <- ext[1,1]
 }
}
vextractall<-as.data.frame(vextractall)
vextractall$CVE_ENT <- mexicomm[,c("CVE_ENT")]
vextractall$CVE_MUN <- mexicomm[,c("CVE_MUN")]
vextractall<-vextractall[,c(ncol(vextractall), 1:(ncol(vextractall)-1))]
vextractall<-vextractall[,c(ncol(vextractall), 1:(ncol(vextractall)-1))]
vextractall <- plyr::rename(vextractall, c("V1"="Milimeters011999"))

tif.raster1 <- raster('chirps-v2.0.1999.02.tif')
tif.raster1 <- crop(tif.raster1, extent(mexico2shp))
vras.tif1 <- velox(tif.raster1)
crs.LL <- "+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84" 
tif.raster1 <- projectRaster(tif.raster1, crs = crs.LL)
vextract2 <- vras.tif1$extract(mexico2shp, fun=mean)
vextract2 <- as.data.frame(vextract2)
iters <- nrow(mexico2shp)
foreach(a=1:iters) %do% {
if(is.na(vextract2[a,1])) {
ext <- raster::extract(tif.raster1, mexico2shp[a,], fun=mean)
vextract2[a,1] <- ext[1,1]
}
 }
vextractall<-as.data.frame(vextractall)
vextract2<-as.data.frame(vextract2)
vextractall$Milimeters021999 <- vextract2

0 ответов

Другие вопросы по тегам