Hello,

Yes, you can use lapply. Maybe something like the following. Note that the result is a list with one member per species. (Untested).

ddeg.correlog.list <- lapply(9:11, function(p)
correlog(plant[plant[,p]=="1", 2], plant[plant[,p]=="1", 3], plant[plant[,p]=="1", 4]))


Hope this helps,

Rui Barradas

Em 23-10-2014 16:06, Sarah escreveu:
Hello List,

I have a database which consist of 912 plots. For each plot, I have the 
presence/absence information of 260 species of plants and also 5 different 
environmental variables (ddeg, mind, srad, slp, topo).

The dataframe looks like this:

   Plot_Number        X          Y      ddeg mind   srad slp topo 
Galium_mollugo Gentiana_nivalis
1        1              557747.6 149726.8 2598 -625 236363   8  176             
 0                0
2        2              572499.4 145503.5 2178 -176 161970  14 -137             
 0                0
3        3              579100.4 151800.4 1208  632 267572  33  129             
 0                0
4        4              581301.7 150300.1 1645   83 246633  15  -70             
 0                0
5        5              579838.7 124770.9 1102 1637 158300   2 -231             
 0                0
6        6              577011.1 121328.6  731 2223 180286  41   70             
 0                0

Now, what I wanted to do is to calculate spatial autocorrelation of each 
environmental variable for each species, but only for the plots where the 
species is present.

I will use the correlog function of the package ncf (doesn’t really matter). 
The correlog function work with an argument X which is the longitude, an 
argument Y which is the latitude and an argument Z which is the variable you 
want to test for autocorrelation (in my case, the different environmental 
variables).

So, for the first species I have the following script:

ddeg.correlog.9<-correlog(plant[plant[,9]=="1", 2], plant[plant[,9]=="1", 3], 
plant[plant[,9]=="1", 4])

X = plant[plant[,9]=="1", 2] —>  only the X coordinate where my species 9 is 
present
Y = plant[plant[,9]=="1", 3] —>  only the Y coordinate where my species 9 is 
present
Z = plant[plant[,9]=="1", 4] —>  only the value of the environmental variable 
where my species 9 is present

plant: dataframe
9: column corresponding to the first species
2: column corresponding to the X coordinate
3: column correspondind to the Y coordinate
4: column corresponding to the first environmental variable

So my question is: how do I repeat this script for every species (basically, I 
just have to change the number « 9 » into 10, 11 and so on) ?

I try to write a function but I’m new in R and didn’t manage to do it. I was 
also considering to use the function « lapply », but I don’t think I can use it 
in this case, isn’t it?

Thank you very much for your help !

Sarah
______________________________________________
R-help@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.


______________________________________________
R-help@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.

Reply via email to