[R] Subsampling out of site*abundance matrix
David Winsemius
dwinsemius at comcast.net
Sun Feb 6 23:53:34 CET 2011
On Feb 6, 2011, at 3:25 PM, B77S wrote:
>
> Hello,
> How can I randomly sample individuals within a sites from a site
> (row) X
> species abundance (column) data frame or matrix? As an example, the
> matrix
> "abund2" made below.
>
> ##### (sorry, Im a newbie and this is the only way I know to get an
> example
> on here)
>
> abund1 <- c(150, 300, 0, 360, 150, 300, 0, 240, 150,
> 0, 60,
> 0, 150, 0, 540, 0, 0, 300, 0, 240, 300, 300, 0, 360, 300, 0, 600, 0)
> abund2 <- matrix(data=abund1, nrow=4, ncol=7)
> colnames(abund2) <- c("spA", "spB", "spC", "spD", "spa", "spF", "spG")
> rownames(abund2)<-c("site1", "site2", "site3", "site4")
Perfect. Best submission of an example by a newbie in weeks.
>
> #####
>
>> abund2
> spA spB spC spD spa spF spG
> site1 150 150 150 150 0 300 300
> site2 300 300 0 0 300 300 0
> site3 0 0 60 540 0 0 600
> site4 360 240 0 0 240 360 0
>
> How can I make a random subsample of 100 individuals from the
> abundances
> given for each site?
samptbl <- apply(abund2, 1, function(x) sample(colnames(abund2), 100,
prob=x, replace=TRUE) )
samptbl
site1 site2 site3 site4
[1,] "spG" "spa" "spD" "spF"
[2,] "spF" "spF" "spG" "spB"
[3,] "spF" "spB" "spC" "spA"
[4,] "spD" "spa" "spG" "spA"
[5,] "spF" "spa" "spD" "spa"
[6,] "spA" "spB" "spD" "spF"
[7,] "spA" "spF" "spD" "spA"
[8,] "spG" "spF" "spG" "spa"
[9,] "spF" "spF" "spG" "spa"
[10,] "spG" "spB" "spD" "spA"
Snipped
apply() always transposes the results when called with row margins.
The t() function would "fix" this if it needed to be arranged with
rows by site. You could check by further apply-(cation) of table to
the columns:
> apply(samptbl, 2, table)
$site1
spA spB spC spD spF spG
8 13 6 13 32 28
$site2
spa spA spB spF
25 31 25 19
$site3
spC spD spG
9 51 40
$site4
spa spA spB spF
22 27 19 32
>
> This is probably really easy.
> Thanks.
> Bubba
> --
> View this message in context: http://r.789695.n4.nabble.com/Subsampling-out-of-site-abundance-matrix-tp3263148p3263148.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> 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.
David Winsemius, MD
West Hartford, CT
More information about the R-help
mailing list