[R] invalid type error

Erik Iverson eriki at ccbr.umn.edu
Mon Jul 19 21:43:33 CEST 2010



jd6688 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")?

doit <- 
function(x)c(sum_LK_positive=sum(x[x>0]),sum_LK_negative=sum(x[x<0]))

cbind(myDF, t(apply(myDF[-1],1,doit)))



More information about the R-help mailing list