Grouping columns

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Grouping columns

Geophagus
Hi @ all,
I have a question concerning the possibilty of grouping the columns of a matrix.
R groups the columns alphabetically.
What can I do to group the columns in my specifications?

The script is the following:


> #R-Skript: Anzahl xyz
>
> #Quelldatei einlesen
> b<-read.csv2("Z:/int/xyz.csv", header=TRUE)
>
> #Teilmengen für die Einzeljahre generieren
> b1<-subset(b,jahr=="2007")
> b2<-subset(b,jahr=="2008")
> b3<-subset(b,jahr=="2009")
>
> #tapply für die Einzeljahre auf die jeweilige BranchenID
> b1_1<-tapply(b1$betriebs_id,b1$umweltkompartiment,length)
> b1_2<-tapply(b2$betriebs_id,b2$umweltkompartiment,length)
> b1_3<-tapply(b3$betriebs_id,b3$umweltkompartiment,length)
>
> #Verbinden der Ergebnisse
> b11<-rbind(b1_1,b1_2,b1_3)
> Gesamt<-apply(X=b11,MARGIN=1, sum)
> b13<-cbind(Gesamt,b11)
> b13
     Gesamt Abwasser Boden Gefährliche Abfälle Luft nicht gefährliche Abfälle Wasser
b1_1   9832      432    18                3147 2839                      1592   1804
b1_2  10271      413    28                3360 2920                      1715   1835
b1_3   9983      404    21                3405 2741                      1691   1721

Now I want to have the following order of the columns:
Gesamt, Wasser, Boden, Luft, Abwasser, Gefährliche Abfälle, nicht gefährliche Abfälle

Thanks a lot for your answers!
Fak


Reply | Threaded
Open this post in threaded view
|

Re: Grouping columns

Patrick_Schn01
untested because I don't have access to your data, but this should work.

b13.NEW <- b13[, c("Gesamt", "Wasser", "Boden", "Luft", "Abwasser", "Gefährliche Abfälle", "nicht gefährliche Abfälle")]






Geophagus wrote
Hi @ all,
I have a question concerning the possibilty of grouping the columns of a matrix.
R groups the columns alphabetically.
What can I do to group the columns in my specifications?

The script is the following:


> #R-Skript: Anzahl xyz
>
> #Quelldatei einlesen
> b<-read.csv2("Z:/int/xyz.csv", header=TRUE)
>
> #Teilmengen für die Einzeljahre generieren
> b1<-subset(b,jahr=="2007")
> b2<-subset(b,jahr=="2008")
> b3<-subset(b,jahr=="2009")
>
> #tapply für die Einzeljahre auf die jeweilige BranchenID
> b1_1<-tapply(b1$betriebs_id,b1$umweltkompartiment,length)
> b1_2<-tapply(b2$betriebs_id,b2$umweltkompartiment,length)
> b1_3<-tapply(b3$betriebs_id,b3$umweltkompartiment,length)
>
> #Verbinden der Ergebnisse
> b11<-rbind(b1_1,b1_2,b1_3)
> Gesamt<-apply(X=b11,MARGIN=1, sum)
> b13<-cbind(Gesamt,b11)
> b13
     Gesamt Abwasser Boden Gefährliche Abfälle Luft nicht gefährliche Abfälle Wasser
b1_1   9832      432    18                3147 2839                      1592   1804
b1_2  10271      413    28                3360 2920                      1715   1835
b1_3   9983      404    21                3405 2741                      1691   1721

Now I want to have the following order of the columns:
Gesamt, Wasser, Boden, Luft, Abwasser, Gefährliche Abfälle, nicht gefährliche Abfälle

Thanks a lot for your answers!
Fak
Reply | Threaded
Open this post in threaded view
|

Re: Grouping columns

David Winsemius
In reply to this post by Geophagus

On Jul 20, 2011, at 10:42 AM, Geophagus wrote:

> *Hi @ all,
> I have a question concerning the possibilty of grouping the columns  
> of a
> matrix.
> R groups the columns alphabetically.
> What can I do to group the columns in my specifications?

Dear Earth Eater;

You can create a factor whose levels are ordered to your  
specification. Your columns: "umweltkompartiment" obviously has those  
levels. This might also offer advantages in situations where there was  
not complete representation of all levels in all the files

So your tapply() calls could have been of this form:

b1_1<-tapply(b1$betriebs_id,
                  factor( b1$umweltkompartiment, levels=
                     c("Gesamt", "Wasser", "Boden", "Luft", "Abwasser",
                       "Gefährliche Abfälle", "nicht gefährliche  
Abfälle") )
                ,length)
# code would e more compact if you created a facvtor vector and use it  
as an argument to factor:

faclevs <- c("Gesamt", "Wasser", "Boden", "Luft", "Abwasser",
                       "Gefährliche Abfälle", "nicht gefährliche  
Abfälle")
b1_1<-tapply(b1$betriebs_id,
                  factor( b1$umweltkompartiment, levels= faclev )
                ,length)
<< lather, rinse, repeat x 3>>
--
David.

>
> The script is the following:*
>
>> #R-Skript: Anzahl xyz
>>
>> #Quelldatei einlesen
>> b<-read.csv2("Z:/int/xyz.csv", header=TRUE)
>>
>> #Teilmengen für die Einzeljahre generieren
>> b1<-subset(b,jahr=="2007")
>> b2<-subset(b,jahr=="2008")
>> b3<-subset(b,jahr=="2009")
>>
>> #tapply für die Einzeljahre auf die jeweilige BranchenID
>> b1_1<-tapply(b1$betriebs_id,b1$umweltkompartiment,length)
>> b1_2<-tapply(b2$betriebs_id,b2$umweltkompartiment,length)
>> b1_3<-tapply(b3$betriebs_id,b3$umweltkompartiment,length)
>>
>> #Verbinden der Ergebnisse
>> b11<-rbind(b1_1,b1_2,b1_3)
>> Gesamt<-apply(X=b11,MARGIN=1, sum)
>> b13<-cbind(Gesamt,b11)
>> b13
>     Gesamt Abwasser Boden Gefährliche Abfälle Luft nicht gefährliche
> Abfälle Wasser
> b1_1   9832      432    18                3147 2839
> 1592   1804
> b1_2  10271      413    28                3360 2920
> 1715   1835
> b1_3   9983      404    21                3405 2741
> 1691   1721
>
> *Now I want to have the following order of the columns:
> Gesamt, Wasser, Boden, Luft, Abwasser, Gefährliche Abfälle, nicht
> gefährliche Abfälle
>
> Thanks a lot for your answers!
> Fak*
>
>
>
> --
> View this message in context: http://r.789695.n4.nabble.com/Grouping-columns-tp3681018p3681018.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> [hidden email] 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.

David Winsemius, MD
West Hartford, CT

______________________________________________
[hidden email] 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.
Reply | Threaded
Open this post in threaded view
|

Re: Grouping columns

Geophagus
In reply to this post by Geophagus
Hi @ all,
both possibilities are working very fine.
Thanks a lot for the fast help!

Best Greetinx from the "Earth Eater" Geophagus