# Re: [R] reshaping data.frame question

From: Matthias Braeunig <mb.atelier_at_web.de>
Date: Tue 27 Jun 2006 - 15:24:37 EST

The problem really is that X starts at 0. Note that in my example changing the row names to 0:2 does not have the desired effect.

```>> y
```

> X1 X2 X3 X4
> 0 0.1 0.1 0.1 0.1
> 1 0.2 0.2 0.2 0.2
> 2 0.3 0.3 0.3 0.3
>
```>> y[,'X3']
```

> [1] 0.1 0.2 0.3
```>> y['0','X3']
```

> [1] 0.1
>
>
>
>
> On 6/26/06, Matthias Braeunig <mb.atelier@web.de> wrote:
```>>
```

> Dear R-helpers,
>
>
> my data.frame is of the form
>
> x <- data.frame( f=gl(4,3), X=rep(0:2,4), p=c(.1,.2,.3))
> x
> f X p
> 1 1 0 0.1
> 2 1 1 0.2
> 3 1 2 0.3
> 4 2 0 0.1
> 5 2 1 0.2
> 6 2 2 0.3
> 7 3 0 0.1
> 8 3 1 0.2
> 9 3 2 0.3
> 10 4 0 0.1
> 11 4 1 0.2
> 12 4 2 0.3
>
> which tabulates some values p(X) for several factors f.
>
> Now I want to put it in "wide" format, so that factor levels appear as
> column heads. Note also that X starts from zero. It would be nice if I
> could simply access p_f[X==0] as f[0]. How can I possibly do that?
>
> (The resilting object does not have to be a data.frame. As there are
> only numeric values, also a matrix would do.)
>
> I tried the following
>
> y<-unstack(x,form=p~f)
> row.names(y) <- 0:2
> y
> X1 X2 X3 X4
> 0 0.1 0.1 0.1 0.1
> 1 0.2 0.2 0.2 0.2
> 2 0.3 0.3 0.3 0.3
>
> Now, how to access X3[0], say?
>
> Maybe reshape would be the right tool, but I could not figure it out.
>
> I appreciate your help. Thanks!

R-help@stat.math.ethz.ch mailing list