Message-ID: <f8e6ff050903041130m5942c965g4f6116635a89119c@mail.gmail.com>
Date: 2009-03-04T19:30:36Z
From: Hadley Wickham
Subject: Table Transformation
In-Reply-To: <22335545.post@talk.nabble.com>
On Wed, Mar 4, 2009 at 11:58 AM, Christian Pilger
<christian.pilger at gmx.net> wrote:
>
> Dear R-experts,
>
> recently, I started to discover the world of R. I came across a problem,
> that I was unable to solve by myself (including searches in R-help, etc.)
>
> I have a flat table similar to
>
> key1 ? ?key2 ? ?value1
>
> abcd_1 ?BP ? ? ?10
> abcd_1 ?BSMP ? ?1A
> abcd_1 ?PD ? ? ?25
> abcd_2 ?BP ? ? ?20
> abcd_3 ?BP ? ? ?80
> abcd_4 ?IA ? ? ?30
> abcd_4 ?PD ? ? ?70
> abcd_4 ?PS ? ? ?N
>
> I wish to transform this table to obtain the following result:
>
> ? ? ? ?key2
> key1 ? ?BP ? ? ?BSMP ? ?IA ? ? ?PD ? ? ?PS
> abcd_1 ?"10" ? ?"1A" ? ?"" ? ? ?"25" ? ?""
> abcd_2 ?"20" ? ?"" ? ? ?"" ? ? ?"" ? ? ?""
> abcd_3 ?"80" ? ?"" ? ? ?"" ? ? ?"" ? ? ?""
> abcd_4 ?"" ? ? ?"" ? ? ?"30" ? ?"70" ? ?"N"
>
> I considered "table" and "xtabs" but I could not get the desired result: I
> received cross-tables key1 vs. key2 that contained counts within the cells.
>
> Can anybody help me?
With the reshape package:
cast(mydf, key1 ~ key2)
You can find out more at http://had.co.nz/reshape
Hadley
--
http://had.co.nz/