[R] data transformation
Marc Schwartz
marc_schwartz at comcast.net
Tue Jul 22 19:45:53 CEST 2008
on 07/22/2008 11:24 AM Christian Hof wrote:
> Dear all,
>
> how can I, with R, transform a presence-only table (with the names of
> the species (1st column), the lat information of the sites (2nd column)
> and the lon information of the sites (3rd column)) into a
> presence-absence (0/1) matrix of species occurrences across sites, as
> given in the below example?
>
> Thanks a lot for your help!
> Christian
>
>
>
> My initial table:
>
> species lat lon
> sp1 10 10
> sp1 10 30
> sp1 20 10
> sp1 20 20
> sp1 20 30
> sp2 10 30
> sp2 20 30
> sp2 30 30
>
>
> My desired matrix:
>
> lat lon sp1 sp2
> 10 10 1 0
> 10 20 0 0
> 10 30 1 1
> 20 10 1 0
> 20 20 1 0
> 20 30 1 1
> 30 10 0 0
> 30 20 0 0
> 30 30 0 1
One approach would be to use ftable(). Presuming that your source data
is in a data frame called 'DF':
> ftable(species ~ lat + lon, data = DF)
species sp1 sp2
lat lon
10 10 1 0
20 0 0
30 1 1
20 10 1 0
20 1 0
30 1 1
30 10 0 0
20 0 0
30 0 1
See ?ftable and/or ?ftable.formula
HTH,
Marc Schwartz
More information about the R-help
mailing list