[R] restructuring datset problem

jim holtman jholtman at gmail.com
Sun Sep 7 22:55:36 CEST 2008


This should do it for you:

  CODE NAME
1    3  aaa
2    3  aab
3    3  aac
4    4  bba
5    4  bbb
6    4  bbc
7    4  bbd
8    5  cca
9    5  ccb
> x.s <- split(x$NAME, x$CODE)
> maxLine <- max(table(x$CODE))
> # pad out the lines
> x.pad <- lapply(x.s, function(line){
+     # convert to character
+     line <- as.character(line)
+     length(line) <- maxLine
+     line
+ })
> as.data.frame(do.call(rbind, x.pad))
   V1  V2   V3   V4
3 aaa aab  aac <NA>
4 bba bbb  bbc  bbd
5 cca ccb <NA> <NA>


On Sun, Sep 7, 2008 at 2:23 PM, Gellrich  Mario
<mario.gellrich at env.ethz.ch> wrote:
> Hi,
>
> I've got a question regarding the restructering of a data set. What I have are municipality zip-codes and the names of 5'000 built-up areas within municipalities. The following example shows, what I would like to do:
>
> Input (Zip-Codes and Names):
>
> #     CODE     NAME
> #1       3      aaa
> #2       3      aab
> #3       3      aac
> #4       4      bba
> #5       4      bbb
> #6       4      bbc
> #7       4      bbd
> #8       5      cca
> #9       5      ccb
>
> Desired Output (Zip-Codes and restructured names)
>
> #  CODE  V2    V3    V4    V5
> #1  3   aaa   aab   aac    NA
> #2  4   bba   bbb   bbc   bbd
> #3  5   cca   ccb   NA     NA
>
> I tougth about this problem several hours and tried functions like aggregate() and t() in combination with for-loops but didn't came to the output above. Can anybody help me?
>
> Best regards,
>
> Mario
>
>
>
> ______________________________________________
> 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.
>



-- 
Jim Holtman
Cincinnati, OH
+1 513 646 9390

What is the problem that you are trying to solve?



More information about the R-help mailing list