# [R] how to get the numbers of factors in a matrix

Jeff Newmiller jdnewmil at dcn.davis.CA.us
Tue Jan 21 15:58:04 CET 2014

```You are mis-using factors. Would you pretend that women do not exist just because your sample happens to include only men?

If you really need to ignore those other levels, convert your factor to character and summarize those values.
---------------------------------------------------------------------------
Jeff Newmiller                        The     .....       .....  Go Live...
DCN:<jdnewmil at dcn.davis.ca.us>        Basics: ##.#.       ##.#.  Live Go...
Research Engineer (Solar/Batteries            O.O#.       #.O#.  with
/Software/Embedded Controllers)               .OO#.       .OO#.  rocks...1k
---------------------------------------------------------------------------
Sent from my phone. Please excuse my brevity.

"张以春" <yczhang at nigpas.ac.cn> wrote:
>Dear Pikal,
>
>
>
>
>I think your example is just the problem I have.
>
>
>In the following example you gave to me,
>
>
>> > ff<-factor(letters[1:5])
>> > levels(ff[1:2])
>> [1] "a" "b" "c" "d" "e"
>> > fff<-ff[1:2]
>> > nlevels(fff)
>> [1] 5
>>
>> > fff
>> [1] a b
>> Levels: a b c d e
>
>In my understanding, fff is a subset of ff. Why fff's levels is not "a,
>b" but "a,b,c,d,e".
>
>
>My problem is quite similar to the example. I just want to split the
>matrix into many subsets and calculate the levels of every subset. Can
>you tell me how to do? Thank you very much!
>
>
>Best regards,
>Yichun
>
>> -----������������-----
>> ���������: "PIKAL Petr" <petr.pikal at precheza.cz>
>> ������������: 2014���1���21��� ���������
>> ���������: "���������" <yczhang at nigpas.ac.cn>, "r-help at r-project.org"
><r-help at r-project.org>
>> ������:
>> ������: RE: [R] how to get the numbers of factors in a matrix
>>
>> Hi
>>
>> It is rather difficult to understand what problem you have.
>>
>> post some data e.g. by
>>
>>
>> Maybe your problem is in a factor feature that it preserves also
>empty levels until you specifically drop them.
>>
>> > ff<-factor(letters[1:5])
>> > levels(ff[1:2])
>> [1] "a" "b" "c" "d" "e"
>> > fff<-ff[1:2]
>> > nlevels(fff)
>> [1] 5
>>
>> > fff
>> [1] a b
>> Levels: a b c d e
>>
>> Regards
>> Petr
>>
>> > -----Original Message-----
>> > From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-
>> > project.org] On Behalf Of ???
>> > Sent: Tuesday, January 21, 2014 7:36 AM
>> > To: r-help at r-project.org
>> > Subject: [R] how to get the numbers of factors in a matrix
>> >
>> > Dear friends,
>> >
>> >
>> > I have a question do not know how to resolve.
>> >
>> >
>> > I have a big matrix composed of different columns (I use N here). A
>> > column is "species" and another one is "latitudes". Now, I want to
>know
>> > how I can get the number of different "latitudes" for every
>"species".
>> > I have tried to split the matrix according to species (X<-split(N,
>> > N\$species) and then use sapply(X,
>function(m){nlevels(m\$latitudes)}) to
>> > get that. But the result shows the total factor numbers of
>"latitudes"
>> > but not the factor numbers of every species I splitted. Also, I
>have
>> > tried to use tapply(N\$latitudes, N\$species, nlevels) to do this.
>The
>with
>> > that? Thank you very much!
>> >
>> >
>> > Best regards,
>> > Yichun
>> >
>> >
>> >
>> >
>> >
>> >
>> >       [[alternative HTML version deleted]]
>> >
>> > ______________________________________________
>> > R-help at r-project.org mailing list
>> > https://stat.ethz.ch/mailman/listinfo/r-help
>> > 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
>��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
>> 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.
>
>
>
>--
>Dr Yichun Zhang
>State Key Laboratory of Palaeobiology and Stratigraphy, Nanjing
>Institute of Geology and Palaeontology
>39 East Beijing Road, Nanjing, China, 210008
>
>
>
>
>	[[alternative HTML version deleted]]
>
>
>
>------------------------------------------------------------------------
>
>______________________________________________
>R-help at r-project.org mailing list
>https://stat.ethz.ch/mailman/listinfo/r-help