[R] Collapse data matrix with extra info separated by commas
baptiste auguie
ba208 at exeter.ac.uk
Mon Apr 6 17:40:16 CEST 2009
Here's one attempt with plyr, hopefully Hadley will give you a better
solution ( I could not get cast() to do it either)
test <-
data
.frame
(a=c("A","A","A","A","B","B","B"),b=c(1,1,2,2,1,1,1),c=sample(1:7))
ddply(test,.(a,b),.fun=function(.) paste(.)[3])
a b V1
1 A 1 c(2, 4)
2 B 1 c(7, 1, 6)
3 A 2 c(3, 5)
# note that with your example R seems to use some magic
>> test <-
> data.frame(a=c("A","A","A","A","B","B","B"),b=c(1,1,2,2,1,1,1),c=1:7)
a b V1
1 A 1 1:2
2 B 1 5:7
3 A 2 3:4
I have no idea how this happens!
HTH,
baptiste
On 6 Apr 2009, at 15:38, Daniel Brewer wrote:
> Hello,
>
> I would like to reshape my data for presentation purposes from
> something
> like this:
>> test <-
> data.frame(a=c("A","A","A","A","B","B","B"),b=c(1,1,2,2,1,1,1),c=1:7)
>> test
> a b c
> 1 A 1 1
> 2 A 1 2
> 3 A 2 3
> 4 A 2 4
> 5 B 1 5
> 6 B 1 6
> 7 B 1 7
>
> to something like this:
> a b c
> 1 A 1 1,2
> 3 A 2 3,4
> 5 B 1 5,6,7
>
> This seems to be the sort of the thing that the reshape library should
> be able to do, but I just can't work out how to do it.
>
> Many thanks
>
> Dan
>
> --
> **************************************************************
> Daniel Brewer, Ph.D.
>
> Institute of Cancer Research
> Molecular Carcinogenesis
> Email: daniel.brewer at icr.ac.uk
> **************************************************************
>
> The Institute of Cancer Research: Royal Cancer Hospital, a
> charitable Company Limited by Guarantee, Registered in England under
> Company No. 534147 with its Registered Office at 123 Old Brompton
> Road, London SW7 3RP.
>
> This e-mail message is confidential and for use by the...{{dropped:26}}
More information about the R-help
mailing list