[EMAIL PROTECTED] wrote:
>> I have a table like this:
>>
>> coor   v1   v2   v3
>> x1   12   33   123 
>> x2   1   123
>> x3   12 
>> x4   33   1
>>
>> and I'd like to tranform this matrix in presence/absence data.frame
>>
>> coor   1   12   33   123
>> x1   0   1   1   1 
>> x2   1   0   0   1
>> x3   0   1   0   0 
>> x4   1   0   1   0
>>     
>
> #This uses the reshape package
> df = data.frame(coor = paste("x", 1:4, sep=""), v1=c(12,1,12,33), 
> v2=c(33,123,NA,1), v3=c(1,NA,NA,NA))
> mdf = melt(df)
> with(mdf, table(coor, value))
>   
Plain reshape() too:

> df = data.frame(coor = paste("x", 1:4, sep=""), v1=c(12,1,12,33),
+ v2=c(33,123,NA,1), v3=c(123,NA,NA,NA))
> mdf <- reshape(df, direction="long", varying=c("v1","v2","v3"), sep="")
> with(mdf, table(coor, v))
    v
coor 1 12 33 123
  x1 0  1  1   1
  x2 1  0  0   1
  x3 0  1  0   0
  x4 1  0  1   0

(actually, varying=-1 also works.)


-- 
   O__  ---- Peter Dalgaard             Ă˜ster Farimagsgade 5, Entr.B
  c/ /'_ --- Dept. of Biostatistics     PO Box 2099, 1014 Cph. K
 (*) \(*) -- University of Copenhagen   Denmark          Ph:  (+45) 35327918
~~~~~~~~~~ - ([EMAIL PROTECTED])                  FAX: (+45) 35327907

______________________________________________
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