On Jul 23, 2012, at 10:33 AM, Jeff wrote:

At 10:38 AM 7/23/2012, you wrote:
You might also find it useful to use Hadley Wickham's plyr
and/or reshape2 packages, whose aim is to standardize and simplify
data manipulation tasks.

Cheers,
Bert


I have already used R enough to have correctly imported the actual data. After import, it is in the approximate format at the x dataframe I previously posted. I already found the plyr and reshape2 packages and had assumed that the cast (or dcast) options might be the correct ones. Melt seemed to get me only what I already have. The examples I have seen thus far start with data in a various formats and end up in the format that I am starting with. In other words, they seem to do the exact opposite of what I'm trying to do. So I'm still stuck with how to get started and whether the functions in reshape2 are actually the correct ones to consider.

...still looking for some help on this.


I didn't see a clear way to use either reshape() or the plyr/reshape2 packages to do this, (but would enjoy seeing an example that improved my understanding on this path) so I just looked at your "x" and then created a scaffold with the number of rows needed to match your "y" and filled in the the other columns by first merging to that scaffold and then creating new columns:

> y2 <- data.frame(id=rep(1:2, each=5), Year=seq(68,69,by=0.25) )
> merge(y2, x)
   id  Year Event1Occur YearOfOccurEvent1 Event2Occur YearOfOccurEvent2
1   1 68.00           1             68.25           0               0.0
2   1 68.25           1             68.25           0               0.0
3   1 68.50           1             68.25           0               0.0
4   1 68.75           1             68.25           0               0.0
5   1 69.00           1             68.25           0               0.0
6   2 68.00           0              0.00           1              68.5
7   2 68.25           0              0.00           1              68.5
8   2 68.50           0              0.00           1              68.5
9   2 68.75           0              0.00           1              68.5
10  2 69.00           0              0.00           1              68.5
> y2a <- merge(y2, x)

> y2a$Event1 <- with( y2a, as.numeric( Event1Occur & Year>= YearOfOccurEvent1) ) > y2a$Event2 <- with( y2a, as.numeric( Event2Occur & Year>= YearOfOccurEvent2) )

# Using negative numeric column indexing to suppress then now superfluous columns

> y2a[, -(3:6) ]
   id  Year Event1 Event2
1   1 68.00      0      0
2   1 68.25      1      0
3   1 68.50      1      0
4   1 68.75      1      0
5   1 69.00      1      0
6   2 68.00      0      0
7   2 68.25      0      0
8   2 68.50      0      1
9   2 68.75      0      1
10  2 69.00      0      1

--

David Winsemius, MD
Alameda, CA

______________________________________________
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