> sapply(X, function(m){nlevels(factor(m$latitudes))}) I think that length(unique(x)) is a more direct and easier to remember way of determining the number of unique values in the vector x, rather than nlevels(factor(x)).
Bill Dunlap TIBCO Software wdunlap tibco.com > -----Original Message----- > From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] On > Behalf > Of PIKAL Petr > Sent: Tuesday, January 21, 2014 11:29 PM > To: 张以春 > Cc: r-help@r-project.org > Subject: Re: [R] how to get the numbers of factors in a matrix > > Hi > > elaborating answers you already got > > sapply(X, function(m){nlevels(factor(m$latitudes))}) > tapply(N$latitudes, N$species, function(x) nlevels(factor(x))) > > shall do the trick > > Petr > > From: 张以春 [mailto:yczh...@nigpas.ac.cn] > Sent: Tuesday, January 21, 2014 2:58 PM > To: PIKAL Petr > Cc: r-help@r-project.org > Subject: Re: RE: [R] how to get the numbers of factors in a matrix > > Dear Pikal, > > Thank you very much for your answer. > > 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.pi...@precheza.cz<mailto:petr.pi...@precheza.cz>> > > 发送时间: 2014年1月21日 星期二 > > 收件人: "张以春" <yczh...@nigpas.ac.cn<mailto:yczh...@nigpas.ac.cn>>, "r- > h...@r-project.org<mailto:r-help@r-project.org>" > <r-help@r-project.org<mailto:r- > h...@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 > > > > dput(head(bigmatrix)) > > > > 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-boun...@r-project.org<mailto:r-help-boun...@r-project.org> > [mailto:r-help-bounces@r- > > > project.org<mailto:r-help-bounces@r-%0b%3e %3e project.org>] On Behalf Of > > > ??? > > > Sent: Tuesday, January 21, 2014 7:36 AM > > > To: r-help@r-project.org<mailto:r-help@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 > > > result is the same. I am confused about this. Can someone help me with > > > that? Thank you very much! > > > > > > > > > Best regards, > > > Yichun > > > > > > > > > > > > > > > > > > > > > [[alternative HTML version deleted]] > > > > > > ______________________________________________ > > > R-help@r-project.org<mailto:R-help@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. > > > > ________________________________ > > 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. > > > > -- > Dr Yichun Zhang > State Key Laboratory of Palaeobiology and Stratigraphy, Nanjing Institute of > Geology and > Palaeontology > 39 East Beijing Road, Nanjing, China, 210008 > > > > ________________________________ > 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. > > [[alternative HTML version deleted]] ______________________________________________ R-help@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.