Re: [R] binning dates by decade for simulated data

2012-03-09 Thread David Winsemius


On Mar 8, 2012, at 7:37 PM, Jeff Garcia wrote:

I have a simulated matrix of dates that I generated from a  
probability function. Each column represents a single iteration.


I would like to bin each run _separately_ by decades and dump them  
into a new matrix where each column is the length of all decades a  
single run with the number dates binned by decade.


I have successfully done this for a single vector of dates, but not  
for a matrix:


dates is a vector of observed data representing when certain trees  
established in a population


#-find min and max decade -#

   minDecade - min(dates)
   maxDecade - max(dates)

#-create vector of decades -#

   allDecades - seq(minDecade, 2001, by=10)

#-make empty vector of same length as decade vector-#

   bin.vec - rep(0,length(allDecades))

#-populate bin.vec (empty vector) with the number of trees in  
each decade-#


   for (i in 1:length(allDecades)) {

   bin.vec[i] -  
length(which(dates==allDecades[i]))

   }


bin.vec : [1]0  0  0  0  0  0  0  0  0  0  1  1  1  0  1  2  0  1
  [19]  3  0  1  3  8  5  9  8  5  5  4 10  3  6  9 17  
32 37
  [37] 35 25 31 41 41 44 45 40 50 43 59 42 46 28 16 18  
20 16

  [55] 11  4  7  1


My matrix looks like this (it actually had 835 rows, I used head (x)  
just to demonstrate).


head(bin.mat)
[,1] [,2] [,3]   [,4]   [,5][,6][,7]   [,8][, 
9] [,10]

[1,] 1831 1811 1841 1881 1851 1871 1921 1821 1781  1561
[2,] 1851 1931 1821 1701 1841 1961 1941 1931 1891  1841
[3,] 1751 1861 1861 1751 1841 1841 1771 1971 1811  1871
[4,] 1831 1871 1741 1881 1871 1771 1821 1901 1901  1851
[5,] 1681 1861 1871 1811 1711 1931 1891 1771 1811  1821
[6,] 1931 1841 1841 1861 1831 1881 1601 1861 1891  1891


After setting up your allDecades vector to your liking perhaps  
something like:


apply( dates, 2, function(colm){
 1 + max(findInterval(colm, allDecades)) -
 min(findInterval(colm, allDecades) )
} )

With that data (although changing its name to years):

 years - scan()
1:  1831 1811 1841 1881 1851 1871 1921 1821 1781  1561
11:  1851 1931 1821 1701 1841 1961 1941 1931 1891  1841
21:  1751 1861 1861 1751 1841 1841 1771 1971 1811  1871
31:  1831 1871 1741 1881 1871 1771 1821 1901 1901  1851
41:  1681 1861 1871 1811 1711 1931 1891 1771 1811  1821
51:  1931 1841 1841 1861 1831 1881 1601 1861 1891  1891
61:
Read 60 items
 years - matrix(years, nrow=6, byrow=TRUE)
  minDecade - min(years)
maxDecade - max(years)
allDecades - seq(minDecade, 2001, by=10)


 apply( years, 2, function(colm){
+  1 + max(findInterval(colm, allDecades)) -
+  min(findInterval(colm, allDecades) )
+ } )
  [1] 26 13 14 19 17 20 35 21 13 34

You have not offered the requested correct answer with your data , so  
I leave it to you to decide whether the rules the 'findInterval' uses  
for determining boundaries with you interval-vector are to your  
requirements.




Each column is a separate run (runs - 10 ) .  How can I bin each  
column into decades separately?


That is not a good description of what I did but  following that  
wording would have constructed a result that only a list object could  
have accepted because of the irregular lengths. I decided from your  
sample output that you just wanted a single number to describe the  
span of years.


I'll bet this is super easy, but my R-skills are seriously limited!!!

Thanks for any help!
~Jeff
[[alternative HTML version deleted]]

__
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.


David Winsemius, MD
West Hartford, CT

__
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] binning dates by decade for simulated data

2012-03-08 Thread jtgarcia
I have a simulated matrix of dates that I generated from a probability
function. Each column represents a single iteration.

I would like to bin each run _separately_ by decades and dump them into a
new matrix where each column is the length of all decades a single run with
the number dates binned by decade. 

I have successfully done this for a single vector of dates, but not for a
matrix:

dates is a vector of observed data representing when certain trees
established in a population

#-find min and max decade -#

minDecade - min(dates)
maxDecade - max(dates)

#-create vector of decades -#

allDecades - seq(minDecade, 2001, by=10) 

#-make empty vector of same length as decade vector-#

bin.vec - rep(0,length(allDecades))

#-populate bin.vec (empty vector) with the number of trees in each
decade-#

for (i in 1:length(allDecades)) {

bin.vec[i] - length(which(dates==allDecades[i]))
}


bin.vec : [1]0  0  0  0  0  0  0  0  0  0  1  1  1  0  1  2  0  1
   [19]  3  0  1  3  8  5  9  8  5  5  4 10  3  6  9 17 32 37
   [37] 35 25 31 41 41 44 45 40 50 43 59 42 46 28 16 18 20 16
   [55] 11  4  7  1


My matrix looks like this (it actually had 835 rows, I used head (x) just to
demonstrate).

head(bin.mat)
 [,1] [,2] [,3]   [,4]   [,5][,6][,7]   [,8][,9]
[,10]
[1,] 1831 1811 1841 1881 1851 1871 1921 1821 1781  1561
[2,] 1851 1931 1821 1701 1841 1961 1941 1931 1891  1841
[3,] 1751 1861 1861 1751 1841 1841 1771 1971 1811  1871
[4,] 1831 1871 1741 1881 1871 1771 1821 1901 1901  1851
[5,] 1681 1861 1871 1811 1711 1931 1891 1771 1811  1821
[6,] 1931 1841 1841 1861 1831 1881 1601 1861 1891  1891

Each column is a separate run (runs - 10 ) .  How can I bin each column
into decades separately?

I'll bet this is super easy, but my R-skills are seriously limited!!!

Thanks for any help!
~Jeff

--
View this message in context: 
http://r.789695.n4.nabble.com/binning-dates-by-decade-for-simulated-data-tp4457766p4457766.html
Sent from the R help mailing list archive at Nabble.com.

__
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] binning dates by decade for simulated data

2012-03-08 Thread Jeff Garcia
I have a simulated matrix of dates that I generated from a probability 
function. Each column represents a single iteration. 

I would like to bin each run _separately_ by decades and dump them into a new 
matrix where each column is the length of all decades a single run with the 
number dates binned by decade. 

I have successfully done this for a single vector of dates, but not for a 
matrix: 

dates is a vector of observed data representing when certain trees 
established in a population 

#-find min and max decade -# 

minDecade - min(dates) 
maxDecade - max(dates) 

#-create vector of decades -# 

allDecades - seq(minDecade, 2001, by=10) 

#-make empty vector of same length as decade vector-# 

bin.vec - rep(0,length(allDecades)) 

#-populate bin.vec (empty vector) with the number of trees in each 
decade-# 

for (i in 1:length(allDecades)) { 

bin.vec[i] - length(which(dates==allDecades[i])) 
} 


bin.vec : [1]0  0  0  0  0  0  0  0  0  0  1  1  1  0  1  2  0  1 
   [19]  3  0  1  3  8  5  9  8  5  5  4 10  3  6  9 17 32 37 
   [37] 35 25 31 41 41 44 45 40 50 43 59 42 46 28 16 18 20 16 
   [55] 11  4  7  1 


My matrix looks like this (it actually had 835 rows, I used head (x) just to 
demonstrate). 

head(bin.mat) 
 [,1] [,2] [,3]   [,4]   [,5][,6][,7]   [,8][,9] 
[,10] 
[1,] 1831 1811 1841 1881 1851 1871 1921 1821 1781  1561 
[2,] 1851 1931 1821 1701 1841 1961 1941 1931 1891  1841 
[3,] 1751 1861 1861 1751 1841 1841 1771 1971 1811  1871 
[4,] 1831 1871 1741 1881 1871 1771 1821 1901 1901  1851 
[5,] 1681 1861 1871 1811 1711 1931 1891 1771 1811  1821 
[6,] 1931 1841 1841 1861 1831 1881 1601 1861 1891  1891 

Each column is a separate run (runs - 10 ) .  How can I bin each column into 
decades separately? 

I'll bet this is super easy, but my R-skills are seriously limited!!! 

Thanks for any help! 
~Jeff
[[alternative HTML version deleted]]

__
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.