Hi Johannes ,

Try this:

var1 <- rep(c("a","b"),c(100,100))
var2 <- runif(200,1,50)
df.test <- data.frame(var1,var2)

fn <- function(x){
        x <- x$var2
       x1 <- sort(x)
       x2 <- seq(length(x))
       x3 <- x2/max(x2)
       df <- data.frame(x1,x2,x3)
       df
}

require(plyr)
ddply(df.test,.(var1),fn)



I think it should do what you've asked.



----------------Contact
Details:-------------------------------------------------------
Contact me: Tal.Galili@gmail.com |  972-52-7275845
Read me: www.talgalili.com (Hebrew) | www.biostatistics.co.il (Hebrew) |
www.r-statistics.com (English)
----------------------------------------------------------------------------------------------




On Sat, May 5, 2012 at 12:51 PM, Johannes Radinger <jradinger@gmx.at> wrote:

> Hi,
>
> I am really confused how ddply work, so maybe you can help me.
>
> I created a function that sorts a vector etc.
>
> fn <- function(x){
>        x1 <- sort(x)
>        x2 <- seq(length(x))
>        x3 <- x2/max(x2)
>        df <- data.frame(x1,x2,x3)
>        df
> }
>
> Probably this is not the best form of the function, but at least it
> produces what I want (data to plot a cumulative count curve).
> This function works on a single vector but I have a melted dataframe like:
>
> var1 <- rep(c("a","b"),c(100,100))
> var2 <- runif(200,1,50)
> df.test <- data.frame(var1,var2)
>
> ..and I want to apply that function on var2 but splitted by the variable
> var1. I think this might be a case for ddply...
>
> anything like: ddply(df.test,.(var1),fn(var2))...
> maybe someone know how to do that (modifying my function and applying it
> on a splitted dataframe).
>
> Best regards,
>
> Johannes
>
> ______________________________________________
> 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.
>

	[[alternative HTML version deleted]]

