[R] avoiding too many loops - reshaping data

Dimitri Liakhovitski dimitri.liakhovitski at gmail.com
Wed Nov 3 22:02:47 CET 2010


Want to thank everyone once more for pointing in "reshape" direction.
Saved me about 16 hours of looping!
Dimitri

On Wed, Nov 3, 2010 at 4:38 PM, Dimitri Liakhovitski
<dimitri.liakhovitski at gmail.com> wrote:
> In reshape2 this does the job:
>
> dcast(mydf,city~brand,sum)
>
>
> On Wed, Nov 3, 2010 at 4:37 PM, Dimitri Liakhovitski
> <dimitri.liakhovitski at gmail.com> wrote:
>> Thanks a lot!
>>
>> Yes - I just found the reshape package too - and guess what, my math was wrong!
>> reshape2 seems like the more up-to-date version of reshape.
>>
>> Wonder what's faster - xtabs or dcast...
>> Dimitri
>>
>> On Wed, Nov 3, 2010 at 4:32 PM, Henrique Dallazuanna <wwwhsd at gmail.com> wrote:
>>> Try this:
>>>
>>>  xtabs(value ~ city + brand, mydf)
>>>
>>> On Wed, Nov 3, 2010 at 6:23 PM, Dimitri Liakhovitski
>>> <dimitri.liakhovitski at gmail.com> wrote:
>>>>
>>>> Hello!
>>>>
>>>> I have a data frame like this one:
>>>>
>>>>
>>>> mydf<-data.frame(city=c("a","a","a","a","a","a","a","a","b","b","b","b","b","b","b","b"),
>>>>  brand=c("x","x","y","y","z","z","z","z","x","x","x","y","y","y","z","z"),
>>>>  value=c(1,2,11,12,111,112,113,114,3,4,5,13,14,15,115,116))
>>>> (mydf)
>>>>
>>>> What I need to get is a data frame like the one below - cities as
>>>> rows, brands as columns, and the sums of the "value" within each
>>>> city/brand combination in the body of the data frame:
>>>>
>>>> city x   y    z
>>>> a    3   23  336
>>>> b    7   42  231
>>>>
>>>>
>>>> I have written a code that involves multiple loops and subindexing -
>>>> but it's taking too long.
>>>> I am sure there must be a more efficient way of doing it.
>>>>
>>>> Thanks a lot for your hints!
>>>>
>>>>
>>>> --
>>>> Dimitri Liakhovitski
>>>> Ninah Consulting
>>>> www.ninah.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
>>>
>>
>>
>>
>> --
>> Dimitri Liakhovitski
>> Ninah Consulting
>> www.ninah.com
>>
>
>
>
> --
> Dimitri Liakhovitski
> Ninah Consulting
> www.ninah.com
>



-- 
Dimitri Liakhovitski
Ninah Consulting
www.ninah.com



More information about the R-help mailing list