[R] Rearranging a data frame for multiple observations

Henrique Dallazuanna wwwhsd at gmail.com
Sat Feb 20 21:56:28 CET 2010


David,

Because the recycling, is needed index each element from 1 to maximum
of length of the elements. ( '[' ).

On Sat, Feb 20, 2010 at 1:31 PM, David Winsemius <dwinsemius at comcast.net> wrote:
> Henrique;
>
> I wonder if you can comment on why that works as it does. I have tried to
> pull it apart and reassemble it piece by piece, but always end up with
> argument recycling.
>
>> do.call(rbind, c(unstack(x, V2 ~ V1)[1], unstack(x, V2 ~ V1)[3]))
>           [,1]       [,2]       [,3]       [,4]       [,5]
> CAO0337134 "05/09/95" "27/09/05" "05/09/95" "27/09/05" "05/09/95"
> CAO0367128 "11/07/05" "12/07/05" "14/07/05" "19/09/97" "20/09/97"
>
> (Further efforts with list() instead of c() were unrewarding in various
> ways.)
>
>> do.call(rbind, list(unstack(x, V2 ~ V1)[1], unstack(x, V2 ~ V1)[3]))
>     CAO0337134
> [1,] Character,2
> [2,] Character,5
>
>
> What is it about this version that preserves the missingness when using "["?
>
>> do.call(rbind, lapply(unstack(x, V2 ~ V1), '[', 1:5))
>           [,1]       [,2]       [,3]       [,4]       [,5]
> CAO0337134 "05/09/95" "27/09/05" NA         NA         NA
> CAO0347741 "10/10/04" "12/10/04" NA         NA         NA
> CAO0367128 "11/07/05" "12/07/05" "14/07/05" "19/09/97" "20/09/97"
> CAO0374110 "14/11/89" "17/11/89" NA         NA         NA
> CAO0374779 "01/10/99" "28/09/99" "29/09/99" NA         NA
>
> --
> David.
>
> On Feb 20, 2010, at 10:37 AM, Henrique Dallazuanna wrote:
>
>> Try this:
>>
>> do.call(rbind, lapply(unstack(x, V2 ~ V1), '[', 1:max(with(x,
>> tapply(V2, V1, length)))))
>>
>> On Sat, Feb 20, 2010 at 9:26 AM, Newbie19_02 <nvanzuydam at gmail.com> wrote:
>>>
>>> Hi there,
>>>
>>> I think I'm struggling with a fairly simple problem but can't seem to
>>> solve
>>> it.  I have multiple observations for one unique identifier.  Ultimately
>>> I
>>> want to end up with one line per identifier with multiple observations in
>>> rows. I'm really stuck any help would be really appreciated.
>>>
>>>
>>> CAO0337134      05/09/95
>>> CAO0337134      27/09/05
>>> CAO0347741      10/10/04
>>> CAO0347741      12/10/04
>>> CAO0367128      11/07/05
>>> CAO0367128      12/07/05
>>> CAO0367128      14/07/05
>>> CAO0367128      19/09/97
>>> CAO0367128      20/09/97
>>> CAO0374110      14/11/89
>>> CAO0374110      17/11/89
>>> CAO0374779      01/10/99
>>> CAO0374779      28/09/99
>>> CAO0374779      29/09/99
>>>
>>> Thanks
>>> Natalie
>>> --
>>> View this message in context:
>>> http://n4.nabble.com/Rearranging-a-data-frame-for-multiple-observations-tp1562780p1562780.html
>>> Sent from the R help mailing list archive at Nabble.com.
>>>
>>> ______________________________________________
>>> R-help at 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.
>>>
>>
>>
>>
>> --
>> Henrique Dallazuanna
>> Curitiba-Paraná-Brasil
>> 25° 25' 40" S 49° 16' 22" O
>>
>> ______________________________________________
>> R-help at 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.
>
>



-- 
Henrique Dallazuanna
Curitiba-Paraná-Brasil
25° 25' 40" S 49° 16' 22" O



More information about the R-help mailing list