[R] Loop to extract from variables in the workspace

Frede Aakmann Tøgersen frtog at vestas.com
Mon Apr 21 15:17:06 CEST 2014

Hi Beatriz

Did you read the help for extract{raster} carefully?

Several things can be wrong.

1) First argument to extract is not a file name but a raster object.
2) In the loop you name an object extract as an intermediate name to hold the result from the extract function. Do you think there could be a name clash? R is clever but perhaps not clever enough.
3) coords are of the right class (see ?extract).
4) assign can be useful from time to time. But in a loop?

I think the things you are doing are some intermediate results that needs more processing. Do you think this is the right way to do that. For instance instead of storing the immediate result as separate objects why not store those in a list.

Perhaps if you tell us what you would like to do  overall, i.e. from first to last, then we will be able to help you to become more efficient.  

Yours sincerely / Med venlig hilsen

Frede Aakmann Tøgersen
Specialist, M.Sc., Ph.D.
Plant Performance & Modeling

Technology & Service Solutions
T +45 9730 5135
M +45 2547 6050
frtog at vestas.com

Company reg. name: Vestas Wind Systems A/S
This e-mail is subject to our e-mail disclaimer statement.
Please refer to www.vestas.com/legal/notice
If you have received this e-mail in error please contact the sender. 

> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org]
> On Behalf Of Beatriz R. Gonzalez Dominguez
> Sent: 21. april 2014 14:53
> To: r-help at r-project.org
> Subject: [R] Loop to extract from variables in the workspace
> Dear all,
> I'm starting to work with loops and I'm stucked on something.
> I've been searching and trying different possibilities but I don't get
> to the solution.
> I'd be very grateful if you could share any ideas that you think may help.
> library("raster")
> # All my variables are in the workspace
> # This is what I'd like to obtain, but with a loop (I'm working with
> several years and variables).
> PE.coords_01_1981 <- extract(RR_1981_1, coords, df=T)
> PE.coords_01_1982 <- extract(RR_1982_1, coords, df=T)
> PE.coords_01_1983 <- extract(RR_1983_1, coords, df=T)
> PE.coords_01_1984 <- extract(RR_1984_1, coords, df=T)
> PE.coords_01_1985 <- extract(RR_1985_1, coords, df=T)
> PE.coords_01_1986 <- extract(RR_1986_1, coords, df=T)
> PE.coords_01_1987 <- extract(RR_1987_1, coords, df=T)
> PE.coords_01_1988 <- extract(RR_1988_1, coords, df=T)
> PE.coords_01_1989 <- extract(RR_1989_1, coords, df=T)
> PE.coords_01_1990 <- extract(RR_1990_1, coords, df=T)
> # This is one of the things I've tried.
> for(i in 1981:2010){
> file <- c(paste("RR_", i, "_1", sep=""))
> extract <- extract(file, coords, df=T)}
> names.a <- paste("PE.coords_01_", i, sep="")
> assign(names.a, value=extract)
> }
> # I get the following error.
> Error in (function (classes, fdef, mtable) :
> unable to find an inherited method for function 'extract'
> for signature '"character", "SpatialPointsDataFrame"'
> # I think the error must be something when I'm defining 'file'
> Thanks a lot for any help!
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-
> guide.html
> and provide commented, minimal, self-contained, reproducible code.

More information about the R-help mailing list