我有50个数据帧文件的数据。在每个数据帧的第二列中,我有各自的数据,我想要进行变差函数分析,包括拟合各种模式,并在每个文件的各个图中绘制它们。所以,我有一个循环,如下所示:
# Loading libraries
library(foreign)
library(maptools)
library(rgdal)
library(rgeos)
library(sp)
#set working directory
setwd('c:/data/monthly')
Data=list.files(,pattern='dbf')
#load study area shape file
studyarea=readShapeSpatial("c:/data/study-areat.shp")
#Setting the projection for study area
proj4string(studyarea)=CRS("+init=epsg:32639")
#Looping
for(i in 1:length(Data)){
#reading dataframes
Data2=read.dbf(Data[i])
Filename=Data[i]
colnames(Data2)[4] <- "prec"
#setting coordinates for dbf files
coordinates(Data2)=~longitude+latitude
#Setting the projection for dbf files
proj4string(Data2)=CRS(proj4string(studyarea))
#defining varigram function
variogram= function(prec) {return(variogram(prec~ 1, Data2,plot.nu=T,pch=("+")))}
#fitting variograms
FitVGM = function(model_type) {return(autofitVariogram(prec~ 1, Data2, model = model_type), verbose=TRUE)}
#Defining Model options
model_options = c("Sph", "Exp", "Gau", "Ste")
#using lappy to list variogram fittings
listVGM = lapply(model_options, FitVGM)
#naming every fit by specific names
names(listVGM) = model_options
lapply(names(listVGM), function(x) {png(filename = sprintf('%s.png', x))
print(plot(listVGM[[x]]))
dev.off()
})
dev.new()}
但是我收到这样的错误:
Error in return(autofitVariogram(prec ~ 1, Data2, model = model_type), : multi-argument returns are not permitted