[R] convert table
Peter Dalgaard
P.Dalgaard at biostat.ku.dk
Mon Dec 17 18:30:01 CET 2007
Richard.Cotton at hsl.gov.uk 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
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk) FAX: (+45) 35327907
More information about the R-help
mailing list