[R] count by category

Thierry Onkelinx thierry.onkelinx at inbo.be
Tue Oct 6 10:01:38 CEST 2015


Here is a solution using dplyr.

dataset <- data.frame(
  region = rep(1:2, c(6, 1)),
  city = rep(1:2, c(5, 2)),
  town = rep(1:2, c(4, 3)),
  district = rep(1:3, c(2, 2, 3))
)
library(dplyr)
dataset %>%
  group_by(region) %>%
  mutate(n.region = n()) %>%
  group_by(city, add = TRUE) %>%
  mutate(n.city = n()) %>%
  group_by(town, add = TRUE) %>%
  mutate(n.town = n()) %>%
  group_by(district, add = TRUE) %>%
  mutate(n.district = n())


ir. Thierry Onkelinx
Instituut voor natuur- en bosonderzoek / Research Institute for Nature and
Forest
team Biometrie & Kwaliteitszorg / team Biometrics & Quality Assurance
Kliniekstraat 25
1070 Anderlecht
Belgium

To call in the statistician after the experiment is done may be no more
than asking him to perform a post-mortem examination: he may be able to say
what the experiment died of. ~ Sir Ronald Aylmer Fisher
The plural of anecdote is not data. ~ Roger Brinner
The combination of some data and an aching desire for an answer does not
ensure that a reasonable answer can be extracted from a given body of data.
~ John Tukey

2015-10-06 6:32 GMT+02:00 PIKAL Petr <petr.pikal op precheza.cz>:

> Hi
>
> there are maybe better solutions but I would use ave with length function
> for each column separately to add new column.
>
> See ?ave
>
> Cheers
> Petr
>
> > -----Original Message-----
> > From: R-help [mailto:r-help-bounces op r-project.org] On Behalf Of Val
> > Sent: Tuesday, October 06, 2015 1:01 AM
> > To: r-help op r-project.org
> > Subject: [R] count by category
> >
> > Hi All,
> >
> > I have a data set ( region,  city,  town and district). The data looks
> > like region, city, town, district
> > 1  1  1  1
> > 1  1  1  2
> > 1  1  1  3
> > 1  1  2  1
> > 1  1  2  2
> > 1  2  1  1
> >
> > I want the  counts for   region, city and town.  Here region 1 has 6
> > records, city 1 has 5 records and city 2 has 1 record. Similarly, town
> > 1 has 3 records and town 2 has 2  and so  on.
> > Desired out put to a file
> > 1  1  1  1  6 5 3
> > 1  1  1  2  6 5 3
> > 1  1  1  3  6 5 3
> > 1  1  2  1  6 5 2
> > 1  1  2  2  6 5 2
> > 1  2  3  1  6 1 1
> >
> > Thank you in advance
> >
> >       [[alternative HTML version deleted]]
> >
> > ______________________________________________
> > R-help op r-project.org mailing list -- To UNSUBSCRIBE and more, see
> > 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.
>
> ________________________________
> Tento e-mail a jakékoliv k němu připojené dokumenty jsou důvěrné a jsou
> určeny pouze jeho adresátům.
> Jestliže jste obdržel(a) tento e-mail omylem, informujte laskavě
> neprodleně jeho odesílatele. Obsah tohoto emailu i s přílohami a jeho kopie
> vymažte ze svého systému.
> Nejste-li zamýšleným adresátem tohoto emailu, nejste oprávněni tento email
> jakkoliv užívat, rozšiřovat, kopírovat či zveřejňovat.
> Odesílatel e-mailu neodpovídá za eventuální škodu způsobenou modifikacemi
> či zpožděním přenosu e-mailu.
>
> V případě, že je tento e-mail součástí obchodního jednání:
> - vyhrazuje si odesílatel právo ukončit kdykoliv jednání o uzavření
> smlouvy, a to z jakéhokoliv důvodu i bez uvedení důvodu.
> - a obsahuje-li nabídku, je adresát oprávněn nabídku bezodkladně přijmout;
> Odesílatel tohoto e-mailu (nabídky) vylučuje přijetí nabídky ze strany
> příjemce s dodatkem či odchylkou.
> - trvá odesílatel na tom, že příslušná smlouva je uzavřena teprve
> výslovným dosažením shody na všech jejích náležitostech.
> - odesílatel tohoto emailu informuje, že není oprávněn uzavírat za
> společnost žádné smlouvy s výjimkou případů, kdy k tomu byl písemně zmocněn
> nebo písemně pověřen a takové pověření nebo plná moc byly adresátovi tohoto
> emailu případně osobě, kterou adresát zastupuje, předloženy nebo jejich
> existence je adresátovi či osobě jím zastoupené známá.
>
> This e-mail and any documents attached to it may be confidential and are
> intended only for its intended recipients.
> If you received this e-mail by mistake, please immediately inform its
> sender. Delete the contents of this e-mail with all attachments and its
> copies from your system.
> If you are not the intended recipient of this e-mail, you are not
> authorized to use, disseminate, copy or disclose this e-mail in any manner.
> The sender of this e-mail shall not be liable for any possible damage
> caused by modifications of the e-mail or by delay with transfer of the
> email.
>
> In case that this e-mail forms part of business dealings:
> - the sender reserves the right to end negotiations about entering into a
> contract in any time, for any reason, and without stating any reasoning.
> - if the e-mail contains an offer, the recipient is entitled to
> immediately accept such offer; The sender of this e-mail (offer) excludes
> any acceptance of the offer on the part of the recipient containing any
> amendment or variation.
> - the sender insists on that the respective contract is concluded only
> upon an express mutual agreement on all its aspects.
> - the sender of this e-mail informs that he/she is not authorized to enter
> into any contracts on behalf of the company except for cases in which
> he/she is expressly authorized to do so in writing, and such authorization
> or power of attorney is submitted to the recipient or the person
> represented by the recipient, or the existence of such authorization is
> known to the recipient of the person represented by the recipient.
> ______________________________________________
> R-help op r-project.org mailing list -- To UNSUBSCRIBE and more, see
> 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.
>

	[[alternative HTML version deleted]]



More information about the R-help mailing list