Sorry I didn't spot that one before... Please try:

join<- cbind(bio1, bio2, bio3, bio4, bio5, bio6, bio7)

and check the class and data:

summary(join)

You want this to be of class SpatialGridDataFrame (or SpatialPixelsDataFrame), so you want to keep the spatial attributes together with the data that comes with it.

Also note that, given a Spatial*DataFrame, 'xx@data' is equivalent to 'slot(xx, "data")'.

Hope this helps,
Mathieu.


Le 08/14/2013 03:37 PM, ag...@pitt.edu a écrit :
Dear Mathieu,

Thank you for the assistance.

Upon executing the situation where I take the material of 'join' to
replace 'map' I receive an error:

join<- cbind(bio1@data, bio2@data, bio3@data, bio4@data, bio5@data,
bio6@data, bio7@data)
tab <- slot(join, "data")
Error in slot(join, "data") :
   no slot of name "data" for this object of class "data.frame"

the description of what is compiled in the maps contain in 'join' are:

head(join)
   bio1.asc bio2.asc bio3.asc bio4.asc bio5.asc bio6.asc bio7.asc
1       NA       NA       NA       NA       NA       NA       NA
2       NA       NA       NA       NA       NA       NA       NA
3       NA       NA       NA       NA       NA       NA       NA
4       NA       NA       NA       NA       NA       NA       NA
5       NA       NA       NA       NA       NA       NA       NA
6       NA       NA       NA       NA       NA       NA       NA
class(join)
[1] "data.frame"


Do I need to create a slot or name an element 'data?'

Please advise further.

Cheers,
Alannie

Dear Alannie,

Obviously all these "data"s are confusing :)
The 'enfa' example uses a dataset call 'lynxjura' (not 'data'), which is a
list with several elements. One of these elements is the maps, with the
name 'map' (singular!). This is what you want to achieve. This is simply a
SpatialPixelsDataFrame, but as far as I can tell, a SpatialGridDataFrame
will do too (if you want to know more about the differences between these
two, check the sp vignette).

So, following your example, just replace "map" by "join", and it should
work. The 'slot(map, "data")' line extracts the data frame storing the
data
of the map, since the dudi.pca and enfa functions do not directly need the
spatial attributes.

Hope this helps,
Mathieu.


Le 08/14/2013 02:23 PM, alannie a écrit :
Hi folks!

I have been having significant difficulty using the sp classes to
perform
the ENFA in R.
The objective of this posting is to inquire about how to "prepare data
for
the ENFA," which in previous versions of the software package adehabitat
was
carried out via 'data2enfa' and the 'dudi.pca' functions.

I have been using the code:

#Add table of coordinate locations

locs<-read.table("xybartsiifolia.csv", header=TRUE, sep=",")

#Convert to class sp

xy.sp = SpatialPoints(locs)

#Import .asc variable maps into R.

bio1<-read.asciigrid("bio1.asc", as.image = FALSE, plot.image = FALSE,
colname = basename("bio1.asc"), proj4string = CRS(as.character(NA)))
bio2<-read.asciigrid("bio2.asc", as.image = FALSE, plot.image = FALSE,
colname = basename("bi


--

~$ whoami
Mathieu Basille, PhD

~$ locate --details
University of Florida \\
Fort Lauderdale Research and Education Center
(+1) 954-577-6314
http://ase-research.org/basille

~$ fortune
« Le tout est de tout dire, et je manque de mots
Et je manque de temps, et je manque d'audace. »
 -- Paul Éluard

_______________________________________________
R-sig-Geo mailing list
R-sig-Geo@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-geo

Reply via email to