[R] conditional seq

Joshua Wiley jwiley.psych at gmail.com
Wed Feb 23 19:33:57 CET 2011


On Wed, Feb 23, 2011 at 8:32 AM, mathijsdevaan <mathijsdevaan at gmail.com> wrote:
> Hi,
>
> I have two questions:
> 1. How do I combine "DF$F =" and "DF$G =" into one function? (The original
> dataset contains many more columns for which I want to execute the same
> operation)

Just define a function that can handle multiple columns.  For instance:

foo <- function(x) {
  unlist(lapply(x, FUN = function(z) cumsum(z) - z))
}

## now down to one step
ave(DF[, c("D", "E")], DF$B, FUN = foo)

> 2. How do I improve the ave function so that the value DF(12,G) = 0 instead
> of 1 (see bold font)? Both DF(12,B)=DF(6,B) and DF(12,C)=DF(6,C), so I
> cannot distinguish between both rows, which is why I want DF(12,G) = 0,
> leaving DF(9,G) = 2.

Bold font does not show up on the email listserv, so I do not follow
what you mean by "improve" ave().  If both the input rows are equal,
shouldn't the output rows also be equal?  If not, you need to clearly
define the rules in the cases where multiple input rows are equal.

>
> Please consider the example below:

Thanks for providing an easy to use dataset!

Best regards,

Josh

[snip]

-- 
Joshua Wiley
Ph.D. Student, Health Psychology
University of California, Los Angeles
http://www.joshuawiley.com/



More information about the R-help mailing list