Another option could be:

doit <- function(x)c(sum(x[x > 0]), sum(x[x < 0]))
apply(transform(myDF, row.names = id, id = NULL), 1, doit)

On Mon, Jul 19, 2010 at 4:36 PM, jd6688 <jdsignature@gmail.com> wrote:

>
> >myDF =
>
> data.frame(id=c("A10","A20"),d1=c(.3,.3),d2=c(.4,.4),d3=c(-.2,.5),d4=c(-.3,.6),d5=c(.5,-.2),d6=c(.6,-.4),d7=c(-.9,-.5),d8=c(-.8,-.6))
>
>
> >doit=function(x)c(x[1],sum_LK_positive=sum(x[-1][x[-1]>0]),sum_LK_negative=sum(x[-1][x[-1]<0]))
>
> > myDF
>   id  d1  d2   d3   d4   d5   d6   d7   d8
> 1 A10 0.3 0.4 -0.2 -0.3  0.5  0.6 -0.9 -0.8
> 2 A20 0.3 0.4  0.5  0.6 -0.2 -0.4 -0.5 -0.6
> >  t(apply(myDF,1,doit))
>
>
> Error in sum(x[-1][x[-1] > 0]) : invalid 'type' (character) of argument:
>
> I changed the id=c(100,101) in myDF, it worked. are there any way to have
> this working if the id=c("a10","a20")?
>
> Thanks,
>
> --
> View this message in context:
> http://r.789695.n4.nabble.com/invalid-type-error-tp2294491p2294491.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.
>



-- 
Henrique Dallazuanna
Curitiba-Paraná-Brasil
25° 25' 40" S 49° 16' 22" O

	[[alternative HTML version deleted]]

